gpt4 book ai didi

javascript - 在 JS 中创建对象数组

转载 作者:行者123 更新时间:2023-11-28 11:00:54 25 4
gpt4 key购买 nike

我有 2 个数组:

let array1 = ["a", "b", "c"]
const array2 = [{a: 23, b: 22, c: 14}, {a: 78, b: 22, c: 14}, {id: 3, a: 23, b: 80, c: 14}]

我需要根据以下条件更新array1:
对于数组中的每个元素,我需要返回一个对象:

[{name: 'a', isDifferent: true}, {name: 'b', isDifferent: true}, {name: 'c', isDifferent: false}]

其中 isDifferent 为 true,对于给定名称,至少有一个值不同。

这是我的职责。它有效。
但我认为有更简单的方法可以做到这一点。

array1 = array1.map(el => {
const newObj = {}
newObj.name = el
let isDifferent = false
for (let i = 0; i < array2.length; i++) {
if (array2[i][el] !== array2[0][el]) {
isDifferent = true
break
}
}
newObj.isDifferent = isDifferent
return newObj
})

最佳答案

这是一种方法:

const array1 = ["a", "b", "c"]
const array2 = [{a: 23, b: 22, c: 14}, {a: 78, b: 22, c: 14}, {id: 3, a: 23, b: 80, c: 14}]

let result = array1.map( letter => {
let values = array2.map(obj => obj[letter]); // Getting [23, 78, 3] for "a"
return {
name : letter,
isDifferent : !values.every(v => v===values[0]) // Checks if every value in the array equals the first one
}
})

console.log(result)

关于javascript - 在 JS 中创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com