我有这段代码:
group1
如果var id = event.target.getAttribute('id');
var matchedItem = ko.utils.arrayForEach(self.ProductEffectImagesToMatch(),
function(item) {
if (item.index == id) {
return item;
}
}
);
与index
匹配,我希望在数组中按index
获取该项,然后返回该项。
如何才能正确完成?
答案 0 :(得分:1)
如果只有一个项目,则可以使用ko.utils.arrayFirst
,如果很少,则可以使用arrayFilter
。
var matchedItem = ko.utils.arrayFirst(self.ProductEffectImagesToMatch(), function (item) {
return item.index == id;
});
答案 1 :(得分:0)
“ko.utils”。没必要。如果“self.ProductEffectImagesToMatch”是一个可观察的数组,那么“self.ProductEffectImagesToMatch()”将返回普通数组,您可以按谓词进行过滤:
var matchedItem = self.ProductEffectImagesToMatch().filter(function (item) {
return item.index == id;
})[0];
[0]在空结果的情况下返回undefined,否则返回第一个匹配项。
如果要获取数组的第n个元素,可以使用“id”作为索引:
matchedItem = self.ProductEffectImagesToMatch()[id];