请帮帮我。有 2 个数组,一个是对象,另一个是数字。在数字中number
,从带有对象的数组中存储。
如何使用数字数组正确找到对象的索引并在对象中更改它selected: true
?
现在newArr
奇迹正在发生,但它arr
改变了它的意义selected
var arr = [{
name: 'Hello',
selected: false,
number: 14
}, {
name: 'World',
selected: false,
number: 18
}, {
name: '!',
selected: false,
number: 31
}]
var numbers = [14, 31];
var newArr = arr.map((item, index) => numbers.map((number) => item.number == number ? arr[index].selected = true : arr[index]))
console.log(newArr)
像这样:
这里有几点需要理解:
奇迹之所以成为可能,是因为地图和箭头功能的基本特征没有被考虑在内。好吧,为 arr 数组的每个元素枚举 numbers 数组显然不是一个有效的解决方案。
从这个问题来看,你想要得到什么样的结果并不完全清楚,所以我将展示 3 个(更有效的)选项:
去!
在 arr 中选择的更改:
我们从数组 arr 的对象创建 newArr:
我们从数组 arr 中的对象副本创建 newArr: