[英]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.