如何使用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;
}
答
在不回答你的问题的风险:
如果通过在foreach数组循环:结合,你将有一个观察的$指标可供您在阵列中引用的索引。
如果你做了数组的observableArray,您可以附加一个computedObservable你的模型等,从而进行soemthing:
myArray()[i].index = ko.pureComputed(()=>myArray().indexOf(myArray()[i]))
我认为指数将是一个观察的时候数组改变,将通知用户(因此需要重新计算索引)。
是否有任何理由将索引放入数组元素中? – jgasiorowski
不知道为什么你会希望索引作为一个属性。如果您修改阵列,是否需要更新? –