我想知道只有当数组长度足够长时才能执行函数。
我有一个setInterval函数来重复从interweb获取信息,如果新用户出现它会将他的id发送到一个数组,并且我想只在这个数组的长度达到特定数量时执行不同的函数。
提前致谢!
答案 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);