【问题标题】:Event listener on data change in array node js数组节点js中数据更改的事件监听器
【发布时间】:2018-07-08 02:52:35
【问题描述】:

我有一个大小为 3 的数组。我需要在数组值更改时动态调用一个函数。有什么想法吗?

var arr = ["","",""];

arr[0] = 'first value is chagned';
arr[1] = 'second value is chagned';


function arrFunction(){
    console.log('Array value changed')
}

预期输出

数组值改变了

数组值改变了

.

我知道我们可以通过像下面这样直接调用函数来实现这一点。供您参考,我提供了这些输入。我不能像下面这样直接调用函数

var arr = ["","",""];

arr[0] = 'first value is chagned';
arrFunction()
arr[1] = 'second value is chagned';
arrFunction()

function arrFunction(){
    console.log('Array value changed')
}

【问题讨论】:

  • 为什么不使用函数改变值和调用print一起?
  • 我提供了这些输入供您参考。我不能直接调用这个函数
  • 我想你可能在使用代理后 -> stackoverflow.com/questions/35610242/…
  • 我会在这里检查并通知您

标签: javascript arrays node.js


【解决方案1】:

如果您的目标支持Proxies,这很容易做到:

let observe = (obj, fn) => new Proxy(obj, {
    set(obj, key, val) {
        obj[key] = val;
        fn(obj)
    }
});

arr = observe(['', '', ''], arr => {
    console.log('arr changed! ', arr)
});

arr[0] = 'first value is chagned';
arr[1] = 'second value is chagned';

【讨论】:

    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多