[英]How to get index of object in Array?
我试图获取indexOf
object
,该object
位于可观察数组( Knockout
)中。 我试图做的事情显示了这个简单的例子:
var arrayObjectIndexOf = function arrayObjectIndexOf(myArray, searchTerm, property) {
for (var i = 0, len = myArray.length; i < len; i++) {
if (myArray[i][property] === searchTerm) return i;
}
return -1;
};
var sampleArray = [{ItemID: "2", ItemName: "name1"}, {ItemID: "3", ItemName: "name2"}]
sampleArray: ko.observableArray();
arrayObjectIndexOf(sampleArray(), "2", "ItemID"); // it's always returns me -1 but should in this sample return index equal to 0
myArray[i][property]
它的返回函数不是真正值得比较的函数。
问题是我应该如何使其正常工作?
如果此处不清楚,请询问。
您需要使用ko.unwrap
(或ko.utils.unwrapObservable
如果您正在使用KO的旧版本),以确保您始终与基本价值的工作,而不是与观测:
var arrayObjectIndexOf = function arrayObjectIndexOf(myArray, searchTerm, property) {
var unwrappedArray = ko.unwrap(myArray);
for (var i = 0, len = unwrappedArray.length; i < len; i++) {
if (ko.unwrap(unwrappedArray[i][property]) === searchTerm) return i;
}
return -1;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.