如何在数组中获得对象的索引
How to get index of object in Array?
我试图获得indexOf
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;
};
相关文章:
- 在JavaScript中通过索引从对象数组中获取值
- Javascript:根据对象的嵌套数组中的值,在数组中查找对象的索引
- “未定义的索引:itemdetails”,当将JSON对象从JavaScript发送到PHP时
- 在知道对象值的情况下,确定数组中JS对象的索引
- 索引IndexedDB中对象中的数组值
- 对象中的索引错误
- 按键查找数组中对象的索引
- 使用Handlebars获取同级JSON数据,其中单个对象没有父索引键,但多个项有一个索引键
- AngularJS - ng-repeat,更新尚未定义的模型对象索引
- 来自 jsp 和 javascript 中的请求属性的对象索引数组
- 使用变量作为对象索引
- 如何使用 JavaScript 获取对象索引值的 JSON 响应
- NamedNodeMap对象内部的Attr对象索引问题
- 使用json中的id查找对象索引
- JSON获取对象索引
- 生成对象而不是对象索引的Javascript for循环
- jQuery对象索引忽略jQuery.filter()
- 确定特定字符串的对象索引
- Angularjs访问对象索引
- 按字符串查找对象索引