0

我这里有两个数组。数组 1 是一个数组数组,由一些对象组成,如下所示:

var house = [
  [
    { x: 50, y: 50, selected: false },
    { x: 150, y: 50, selected: false },
    { x: 250, y: 50, selected: false },
    { x: 350, y: 50, selected: false },
    { x: 450, y: 50, selected: false },
    { x: 550, y: 50, selected: false },
    { x: 650, y: 50, selected: false },
    { x: 750, y: 50, selected: false },
    { x: 850, y: 50, selected: false },
    { x: 950, y: 50, selected: false },
  ],
  [
    { x: 50, y: 130, selected: false },
    { x: 150, y: 130, selected: false },
    { x: 250, y: 130, selected: false },
    { x: 350, y: 130, selected: false },
    { x: 450, y: 130, selected: false },
    { x: 550, y: 130, selected: false },
    { x: 650, y: 130, selected: false },
    { x: 750, y: 130, selected: false },
    { x: 850, y: 130, selected: false },
    { x: 950, y: 130, selected: false },
  ]
]

数组 2 由一些布尔值组成

var isSelected = [
  false,
  false,
  false,
  false,
  false,
  false,
  true,
  false,
  false,
  false,
  true,
  false,
  false,
  false,
  false,
  false,
  false,
  false,
  true,
  false
]

如何迭代这些数组,以便如果数组 2 中任何元素的值为真,那么我必须将数组 1 中相应数组中对象的属性“选定”的值也设置为真?

4

1 回答 1

0

const isSelected = [
  false,
  false,
  false,
  false,
  false,
  false,
  true,
  false,
  false,
  false,
  true,
  false,
  false,
  false,
  false,
  false,
  false,
  false,
  true,
  false
]

let  house = [
  [
    { x: 50, y: 50, selected: false },
    { x: 150, y: 50, selected: false },
    { x: 250, y: 50, selected: false },
    { x: 350, y: 50, selected: false },
    { x: 450, y: 50, selected: false },
    { x: 550, y: 50, selected: false },
    { x: 650, y: 50, selected: false },
    { x: 750, y: 50, selected: false },
    { x: 850, y: 50, selected: false },
    { x: 950, y: 50, selected: false },
  ],
  [
    { x: 50, y: 130, selected: false },
    { x: 150, y: 130, selected: false },
    { x: 250, y: 130, selected: false },
    { x: 350, y: 130, selected: false },
    { x: 450, y: 130, selected: false },
    { x: 550, y: 130, selected: false },
    { x: 650, y: 130, selected: false },
    { x: 750, y: 130, selected: false },
    { x: 850, y: 130, selected: false },
    { x: 950, y: 130, selected: false },
  ]
]

const res = []
house.forEach(el => 
  res.push(
    el.map(({selected, ...rest}, i) => ({ selected: isSelected[i], ...rest}))
))  


console.log(res)

于 2022-02-26T21:59:55.847 回答