Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何观察数组的变化?

如何观察数组的变化?
EN

Stack Overflow用户
提问于 2011-02-24 04:32:55
回答 8查看 118.1K关注 0票数 124

在Javascript中,当一个数组被推、弹出、移位或基于索引的赋值被修改时,有没有一种方法可以得到通知?我想要一个能触发我能处理的事件的东西。

我知道SpiderMonkey中的watch()功能,但只有在将整个变量设置为其他值时,该功能才有效。

EN

回答 8

Stack Overflow用户

发布于 2015-07-22 19:45:49

通过阅读这里的所有答案,我组装了一个不需要任何外部库的简化解决方案。

它还更好地说明了该方法的一般思想:

代码语言:javascript
运行
AI代码解释
复制
function processQ() {
   // ... this will be called on each .push
}

var myEventsQ = [];
myEventsQ.push = function() { Array.prototype.push.apply(this, arguments);  processQ();};
票数 27
EN

Stack Overflow用户

发布于 2018-05-23 06:49:30

我使用了以下代码来侦听数组的更改。

代码语言:javascript
运行
AI代码解释
复制
/* @arr array you want to listen to
   @callback function that will be called on any change inside array
 */
function listenChangesinArray(arr,callback){
     // Add more methods here if you want to listen to them
    ['pop','push','reverse','shift','unshift','splice','sort'].forEach((m)=>{
        arr[m] = function(){
                     var res = Array.prototype[m].apply(arr, arguments);  // call normal behaviour
                     callback.apply(arr, arguments);  // finally call the callback supplied
                     return res;
                 }
    });
}

希望这是有用的:)

票数 13
EN

Stack Overflow用户

发布于 2012-11-10 23:54:32

我发现以下代码似乎可以实现这一点:https://github.com/mennovanslooten/Observable-Arrays

Observable-Arrays扩展了下划线,可以使用如下方式:(从该页面)

代码语言:javascript
运行
AI代码解释
复制
// For example, take any array:
var a = ['zero', 'one', 'two', 'trhee'];

// Add a generic observer function to that array:
_.observe(a, function() {
    alert('something happened');
});
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5100376

复制
相关文章

相似问题

观察布尔数组中的变化

05

如何观察RxSwift中数组属性的变化

10

如何告诉流星“观察”数组中的变化?

21

观察UICollectionView的visibleCells数组的变化

225

如何在vb .net中观察数组的变化

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档