如何添加条件以比较两个数组并更改匹配数组的值

问题描述 投票:-1回答:1

我想比较两个数组,因为我想更改匹配ID的值。

请参阅波纹管阵列的结果。

let array1 =[
  {
    "id": 1,
    "value": false
  },
  {
    "id": 2,
    "value": false
  },
  {
    "id": 3,
    "value": true
  },
  {
    "id": 4,
    "value": false
  }
]


let array2 = [
  {
    "id": 1
  },
  {
    "id": 4
  }
]

我想使用下划线库比较此数组并返回比较数组值的结果,如下面的数组所示

result = [
  {
    "id": 1,
    "value": true
  },
  {
    "id": 2,
    "value": false
  },
  {
    "id": 3,
    "value": true
  },
  {
    "id": 4,
    "value": true
  }
]
javascript arrays node.js underscore.js lodash
1个回答
0
投票
array1.forEach(item => {
    item.value = item.value || array2.some(item2 => item2.id === item.id)
})

0
投票

您可以做:

const array1 =[
  {
    "id": 1,
    "value": false
  },
  {
    "id": 2,
    "value": false
  },
  {
    "id": 3,
    "value": true
  },
  {
    "id": 4,
    "value": false
  }
]


const array2 = [
  {
    "id": 1
  },
  {
    "id": 4
  }
]

const result = array1.reduce((a, {id, value}) => {
  return [...a, {
    id,
    value:!!array2.find(item => item.id === id)
  }]
}, [])

console.log(result)
© www.soinside.com 2019 - 2024. All rights reserved.