我有一个对象数组,我需要使用Knockout.js:
array([
{ name: apple, ID: 100 },
{ name: orange, ID: 200},
{ name: banana, ID: 300 }
]);
数组是动态的,因为在白天的任何时间每行都可以更改位置或索引(但行的内容保持不变),例如:
array([
{ name: orange, ID: 200},
{ name: apple, ID: 100},
{ name: banana, ID: 300 }
]);
我想更改' apple'的显示名称桃子'桃子'无论行在白天可能移动到哪里。我尝试过以下代码,但这似乎不起作用:
ko.utils.arrayForEach(array.rowItems, function(item,index) {
if(item = array.rowItems.ID = 100))
return array.rowItems[item = (array.rowItems.ID = 100)].name = "peach"});

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.0.0/knockout-min.js"></script>
&#13;
有没有人有任何建议?我也尝试过使用indexOf和findIndex。
答案 0 :(得分:1)
如果您的目标只是在数组中循环项目,那么您可以使用下面的解决方案。
var array = [
{ name: "apple", ID: 100 },
{ name: "orange", ID: 200},
{ name: "banana", ID: 300 }
]
ko.utils.array.forEach(array, function(item, index) {
if(item.ID === 100){
item.name = "peach";
}
});
您不需要在forEach项回调中引用数组,因为您只是更新循环中每个项的属性。