我有一个数组,简化的形式是这样的:
let array = [
{id: 1, value: 0},
{id: 2, value: 0},
{id: 3, value: 0}
];
现在我想创建一个间隔,每秒递增 id: 3 的对象的值。
我现在要做的就是用
数组[2].value
。只要数组不改变,这个方法就有效。
我使用的数组不断变化,这意味着元素以异步方式删除/添加。当发生这种情况时,间隔将指向错误的元素。如果我删除示例中的元素 [1],则间隔现在将指向未定义的元素 ([2])。
我正在考虑使用关联数组(id 作为索引),但在 Angular ngFor 中,当我这样做时,它不再可靠地工作。由于同样的原因,对象也无法工作。
如何创建一个间隔,即使索引发生变化,该间隔也会更改数组元素的属性?或者有更好的方法来解决我的问题吗?
最佳答案
使用find
方法:
function updateValue () {
var item = array.find(item => item.id === 3)
if (item) item.value++
}
setTimeout(updateValue, 1000)
关于JavaScript |创建更改数组中值的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845288/