使用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';
});