仅当数组的长度达到X个元素时才执行

时间:2017-07-05 19:43:38

标签: javascript arrays node.js

我想知道只有当数组长度足够长时才能执行函数。

我有一个setInterval函数来重复从interweb获取信息,如果新用户出现它会将他的id发送到一个数组,并且我想只在这个数组的长度达到特定数量时执行不同的函数。

提前致谢!

3 个答案:

答案 0 :(得分:4)

添加每个项目后,您可以检查数组的长度属性:

addUser(...) {
  array.push(...)
  if (array.length > x) {
   execute();
 }
}

答案 1 :(得分:2)

不确定这是否听起来那么简单,但为什么不在每次将新用户插入所述数组后检查数组长度。如果长度大于您想要的尺寸,只需调用该功能即可。

答案 2 :(得分:1)

您可以使用Proxy数组来观察其中的更改。在set中,您可以检查数组的长度并触发操作:



var lengthToTriggerFunction = 3;
var functionToBeTriggered = function() {
  console.log('Triggered!');
}

var changeHandler = {
  set: function(target, property, value, receiver) {
    target[property] = value;
    
    if (property === 'length' && target.length === lengthToTriggerFunction) {
       functionToBeTriggered();
    }

    return true;
  }
};

var array = new Proxy([], changeHandler);

array.push(1);
console.log(array.length);

array.push(2);
console.log(array.length);

array.push(3); // function is triggered here
console.log(array.length);

array.push(4);
console.log(array.length);