如何通过敲除映射(ko.utils)向数组中的每个对象添加新属性(索引)?
Posted
技术标签:
【中文标题】如何通过敲除映射(ko.utils)向数组中的每个对象添加新属性(索引)?【英文标题】:How to add new property (index) to each object in array with mapping of knockout (ko.utils)? 【发布时间】:2018-03-28 08:50:42 【问题描述】:是否有任何实用程序可以将数组中每个对象的索引添加为淘汰赛 js 中的属性? 我分两步执行此操作,我想同时为每个对象添加索引属性,并将其推送到数组中。这是我的代码。
ko.utils.arrayPushAll(array,
ko.mapping.fromJS(result)());
for (var i = 0; i < array.length; i++)
array[i].index = i;
【问题讨论】:
有什么理由将索引放入数组元素中? 不确定为什么要将索引作为属性。修改数组是否需要更新? 【参考方案1】:可能无法回答您的问题:
如果您在 foreach: 绑定中循环遍历数组,您将有一个可观察的 $index 可供您引用数组中的索引。
如果您将数组设置为 observableArray,则可以将 computedObservable 附加到执行以下操作的模型:
myArray()[i].index = ko.pureComputed(()=>myArray().indexOf(myArray()[i]))
我相信 index 将是一个 observable,它会在数组更改时通知订阅者(因此需要重新计算索引)。
【讨论】:
以上是关于如何通过敲除映射(ko.utils)向数组中的每个对象添加新属性(索引)?的主要内容,如果未能解决你的问题,请参考以下文章