Javascript JSON文件中包含键值对的数组索引
我该如何编写一个函数来搜索JSON文件,以查找存在包含特定键值对的对象的索引?例如,如果我们查找Javascript JSON文件中包含键值对的数组索引,javascript,ajax,json,Javascript,Ajax,Json,我该如何编写一个函数来搜索JSON文件,以查找存在包含特定键值对的对象的索引?例如,如果我们查找值:“100.0”,函数将返回以下JSON文档的0,因为key1位于索引0 var object = { key1 : { name : 'xxxxxx', value : '100.0' }, key2 : { name : 'yyyyyyy', value : '200.0' }, key3 :
值:“100.0”
,函数将返回以下JSON文档的0
,因为key1
位于索引0
var object = {
key1 : {
name : 'xxxxxx',
value : '100.0'
},
key2 : {
name : 'yyyyyyy',
value : '200.0'
},
key3 : {
name : 'zzzzzz',
value : '500.0'
},
}
给你一把小提琴: 你可以这样称呼它:
findInJson("name", "xxxxxx")
这个站点:提供了更多关于如何解析JSON的信息 如果保证以后不会删除和添加对象中的密钥,您可以使用:
function (object, key, value) {
var index = 0;
for (var oKey in object) {
if (object[oKey][key] === value) {
return index;
}
index++;
}
return -1;
}
但语句以任意顺序在对象上迭代。有关详细说明,请参阅“删除、添加或修改属性”部分
如果希望保留顺序,最好使用数组并将“keyN”放入{name,value}对象中。如果您对支持IE8及以下版本不感兴趣,则可以使用以下方法:
function getIndex(val) {
for (i = 0; i < Object.keys(object).length; i++) {
if (object[Object.keys(object)[i]].value === val) {
return i;
}
};
return -1;
};
console.log( getIndex("100.0") ); // returns 0
console.log( getIndex("500.0") ); // returns 2
console.log( getIndex("800.0") ); // returns -1
函数getIndex(val){
对于(i=0;i
请参见注意,您的
var对象
不是数组,而是(n)(javascript)对象。了解更多
function getIndex(val) {
for (i = 0; i < Object.keys(object).length; i++) {
if (object[Object.keys(object)[i]].value === val) {
return i;
}
};
return -1;
};
console.log( getIndex("100.0") ); // returns 0
console.log( getIndex("500.0") ); // returns 2
console.log( getIndex("800.0") ); // returns -1