簡體   English   中英

如何獲取數組中對象的索引?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM