使用 KNOCKOUT.js 在对象数组中按未知索引显示对象



>我有一个需要使用 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 }
]);
我想将">

苹果"的显示名称更改为"桃子",无论该行在白天可能移动到何处。我尝试了以下代码,但这似乎不起作用:

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>

有人有什么建议吗? 我也尝试过使用indexOf和findIndex。

如果您

的目标只是在数组中循环项目,那么您可以使用以下解决方案。

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 项回调中引用数组,因为您只更新循环中每个项的属性。

最新更新