如何使用knockout(ko.utils)映射将新属性(索引)添加到数组中的每个对象?

如何使用knockout(ko.utils)映射将新属性(索引)添加到数组中的每个对象?

问题描述:

是否有任何工具用于添加数组中每个对象的索引作为淘汰赛js中的属性? 我这样做是分两步进行的,我想在推送到数组的同时为每个对象添加索引属性。这是我的代码。如何使用knockout(ko.utils)映射将新属性(索引)添加到数组中的每个对象?

ko.utils.arrayPushAll(array, 
     ko.mapping.fromJS(result)()); 

for (var i = 0; i < array.length; i++) { 
    array[i].index = i; 
} 
+0

是否有任何理由将索引放入数组元素中? – jgasiorowski

+0

不知道为什么你会希望索引作为一个属性。如果您修改阵列,是否需要更新? –

在不回答你的问题的风险:

如果通过在foreach数组循环:结合,你将有一个观察的$指标可供您在阵列中引用的索引。

如果你做了数组的observableArray,您可以附加一个computedObservable你的模型等,从而进行soemthing:

myArray()[i].index = ko.pureComputed(()=>myArray().indexOf(myArray()[i])) 

我认为指数将是一个观察的时候数组改变,将通知用户(因此需要重新计算索引)。