У меня есть объект в состоянии, которое имеет массив. Я хочу установить статус IDs этого массива в другой пустой массив в состоянии. Я хочу, чтобы array1[1].team.id был array1[1].team.id в пустой массив, array2 и установить статус true. Мой код:

 this.state: { array1: [ {id:1, team: [ {id:1, name: 'name1a'}, {id:2, name: 'name2a'}, {id:3, name: 'name3a'} ]}, {id:2, team: [ {id:1, name: 'name1b'}, {id:2, name: 'name2b'}, {id:3, name: 'name3b'} ]}, {id:3, team: [ {id:1, name: 'name1c'}, {id:2, name: 'name2c'}, {id:3, name: 'name3c'} ]}, ], array2: [ ] } 

Итак, с помощью функции я хочу, чтобы array2 была:

 array2: [ {id:1, status:true}, {id:2, status:true}, {id:2, status:true} ] 

Я старался:

 updateArray = (id) ={amp}gt; { //consider id=1 let array2 = [...this.state.array2]; let newArray2 = [...this.state.array1[id].team.id, status:true]; this.setState({ array2: newArray2 }) } 

И это не сработало. Очевидно, что-то делаю не так. Как это сделать? Благодарю.

Используя функцию map для array1[id] :

 updateArray = id ={amp}gt; { const array2 = this.state.array1[id].team.map(item ={amp}gt; ( {id: item.id, status: true} )); this.setState({array2}) } 

Я не знаю, хотите ли вы всегда заменять значения в array2 или вам нужно array2 несколько новых массивов в state зависимости от id передаваемых в вышеуказанную функцию, таких как array2 , array3 и так далее?

ОБНОВЛЕНИЕ: если id не совпадает с индексом родительского массива (как предложено Адигой и Крисом )

 updateArray = id ={amp}gt; { const arrayToConsider = this.state.array1.find(element ={amp}gt; ( element.id === id )); const array2 = arrayToConsider.team.map(item ={amp}gt; ( {id: item.id, status: true} )); this.setState({array2}) }