使用JavaScript从对象数组中高效提取名称-值对
我在表格中快速搜索了我的问题,基本上除了一个方面之外,还涵盖了所有方面。我只是想听听关于解决方案的建议 基本上,我有一个对象数组中的名称-值对列表使用JavaScript从对象数组中高效提取名称-值对,javascript,arrays,Javascript,Arrays,我在表格中快速搜索了我的问题,基本上除了一个方面之外,还涵盖了所有方面。我只是想听听关于解决方案的建议 基本上,我有一个对象数组中的名称-值对列表 [{"name":"name1","value":"value1"},{"name":"name2","value":"value2"}] etc etc 假设我们有100个,我想搜索1个,一种方法(链接帖子中接受的答案)如下: var data = [{"name":"name1","value":"value1"},{"name":"name2
[{"name":"name1","value":"value1"},{"name":"name2","value":"value2"}] etc etc
假设我们有100个,我想搜索1个,一种方法(链接帖子中接受的答案)如下:
var data = [{"name":"name1","value":"value1"},{"name":"name2","value":"value2"}];
for(var i=0;i<data.length;i++){
if(data[i]['name'] == 'name2'){
console.log('The value is: ' + data[i]['value']);
break;
}
}
var data=[{“name”:“name1”,“value”:“value1”},{“name”:“name2”,“value”:“value2”}];
对于(var i=0;i我会在数组上使用filter
,这样更容易阅读:
var data = [
{ name: 'name1', value: 'value1' },
{ name: 'name2', value: 'value2' }
];
var result = data.filter(function(item) {
return item.name === 'name1' || item.name === 'name2';
});
从O(n)时间中的数据
构造后,可以使用a在O(1)时间中查找值,而不是在O(n)时间中使用数组
:
var data=[{“name”:“name1”,“value”:“value1”},{“name”:“name2”,“value”:“value2”}];
var映射=新映射(data.map)(函数(obj){
返回[obj.name,obj.value];
}));
console.log(map.get('name1');
console.log(map.get('name2');
对于一次查找,可以在解析过程中检索值:
var data=[],j=`[{“name”:“name1”,“value”:“value1”},
{“名称”:“名称2”,“值”:“值2”},{“名称”:“名称3”,“值”:“值3”}]`
parse(j,函数(键,值){
如果(value.name==='name1'| | value.name==='name2')数据推送(value);
返回值;})
console.log(data)
这个问题与JSON无关:这是一个对象数组,而不是。要在数组中查找(筛选)特定元素,请查看可能的重复项,感谢所有回答者。我很高兴回答这个问题。
var data = [
{ name: 'name1', value: 'value1' },
{ name: 'name2', value: 'value2' }
];
var result = data.filter(function(item) {
return item.name === 'name1' || item.name === 'name2';
});