javascript - 比较 2 个对象数组,如果第二个数组中存在,则返回第一个数组中的元素为真,否则返回假

标签 javascript reactjs

我有 2 个对象数组

const options = [
  { value: 'opt1', label: 'opt1' },
  { value: 'opt2', label: 'opt2' },
  { value: 'opt3', label: 'opt3' },
  { value: 'opt4', label: 'opt4' }
]

const selected = [
  { value: 'opt1', key: '1' },
  { value: 'opt2', key: '2' }
]

我需要比较这两个数组并得到结果

result =
  { 'opt1', true },
  { 'opt2', true },
  { 'opt3', false },
  { 'opt4', false }
]

因为 opt1 和 opt2 存在于第二个数组中。我知道有很多方法,但最短的方法是什么?

最佳答案

我个人能想到的最短的。

const result = options.map(o => ({ [o.value]: !!selected.find(s => s.value === o.value) }));

关于javascript - 比较 2 个对象数组,如果第二个数组中存在,则返回第一个数组中的元素为真,否则返回假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54936199/

相关文章:

reactjs - react 谷歌地图getBounds

javascript - jquery onclick 从 div 到 div

javascript - Math.random 关于数组

javascript - 日期范围选择器 html5

javascript - 如何在获取请求中传递变量

reactjs - 根据 ID 更新 React.js 中的特定组件实例

javascript - 在for循环中调用函数

javascript - 如何在 Windows 环境中用 Node.js 编写第一个应用程序?

reactjs - 从 api 获取时 useEffect 无限循环

javascript - 如何根据内容调整容器的大小而不重复相同的代码行?