简体   繁体   English

根据 typescript 中另一个数组的值过滤数组

[英]filter an array based on values of another array in typescript

if I have an array looking as the following:如果我有一个如下所示的数组:

names: [{
  value: 'recordedData',
  desc: 'Data'
} {
  value: 'recordedNumbers',
  desc: 'numbers'
} {
  value: 'recordedNames',
  desc: 'names'
}]

and another array looking as the following:另一个数组如下所示:

displayed: [{
  value: 'data',
  desc: 'Data'
} {
  value: 'numbers',
  desc: 'numbers'
}]

I want to filter the first array based on the second array so I would have the following resulted array:我想根据第二个数组过滤第一个数组,所以我会得到以下结果数组:

DisplayedNames: [{
  value: 'recordedData',
  desc: 'Data'
} {
  value: 'recordedNumbers',
  desc: 'numbers'
}]

Using Array.prototype.filter() and Array.prototype.some() is an elegant way to achieve this使用Array.prototype.filter()Array.prototype.some()是一种优雅的方式来实现这一点

 const names = [{value: 'recordedData', desc: 'Data'}, {value: 'recordedNumbers', desc: 'numbers'}, {value: 'recordedNames', desc: 'names'}]; const displayed = [{ value: 'data', desc: 'Data' }, { value: 'numbers', desc: 'numbers' }] const result = names.filter(x => displayed.some(y => y.desc === x.desc)); console.log(result);

More about Array.prototype.some() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some More about Array.prototype.filter() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter更多关于Array.prototype.some() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some更多关于Array.prototype.filter() - https:/ /developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

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

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