简体   繁体   English

通过字符串数组从对象数组中搜索以获取对象数组

[英]Search from an array of objects via array of string to get array of objects

Hie All, 大家好,

I have two arrays as below: 我有两个数组,如下所示:

var arr1 = [ '1956888670', '2109171907', '298845084' ];
var arr2 = [ 
  { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' },
  { KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' },
  { KEY: '2007285563', VALUE: 'Yang Liu' },
  { KEY: '1976156380', VALUE: 'Imtiaz Zafar' },
  ];

arr1 has keys and arr2 has key and value. arr1有键,arr2有键和值。 i want to output key and value of only those keys which are present in arr1. 我只想输出arr1中存在的那些键和键的值。 Hence my output should be, 因此我的输出应该是

[{ KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' },]

Requesting your help to write a function to fetch required output using javascript.Thanks in advance. 请求您的帮助以编写函数以使用javascript提取所需的输出。

 var arr1 = [ '1956888670', '2109171907', '298845084' ];
var arr2 = [ 
  { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' },
  { KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' },
  { KEY: '2007285563', VALUE: 'Yang Liu' },
  { KEY: '1976156380', VALUE: 'Imtiaz Zafar' },
  ];


  result = arr2.filter( function(obj) {
    return arr1.indexOf(obj.KEY) >= 0;
  });

  console.info(result);

You can try with filter - Array.prototype.filter() : 您可以尝试使用filter - Array.prototype.filter()

var output = arr2.filter(function(item) {
  return arr1.indexOf(item.KEY) >= 0;
});

You could use Set for the filtering. 您可以使用Set进行过滤。

 var arr1 = ['1956888670', '2109171907', '298845084'], arr2 = [{ KEY: '1262875245', VALUE: 'Vijay Kumar Verma' }, { KEY: '1956888670', VALUE: 'Sivakesava Nallam' }, { KEY: '2109171907', VALUE: 'udm nalyst' }, { KEY: '298845084', VALUE: 'Mukesh Nagora' }, { KEY: '2007285563', ALUE: 'Yang Liu' }, { KEY: '1976156380', VALUE: 'Imtiaz Zafar' }], mySet = new Set, result; arr1.forEach(function (a) { mySet.add(a); }); result = arr2.filter(function (a) { return mySet.has(a.KEY); }); console.log(result); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM