将对象添加到数组中并更改该数组中其他对象的属性

时间:2020-02-09 14:29:29

标签: javascript arrays reactjs

我如何同时将此对象添加到数组中,并将同一数组中每个其他对象(如果有)的属性popup更改为false

 this.setState({
            map: {
                ...this.state.map,
                areas: this.state.map.areas.concat({
                    coords: [evt.nativeEvent.layerX, evt.nativeEvent.layerY, 15],
                    popup: true,
                })
            }
        });

1 个答案:

答案 0 :(得分:1)

您不能同时执行此操作,但是可以使用Object.assign方法和map来将popup属性设置为false,然后concat new 项。

areas: this.state.map.areas.map(item => Object.assign(item, {popup: false})).concat({
   coords: [evt.nativeEvent.layerX, evt.nativeEvent.layerY, 15],
   popup: true,
})