繁体   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