Заменить вложенный массив на новый массив

У меня есть массив внутри другого массива:

Структура:

First Array
[
{
Second Array
   [
     {
     }
   ]
}
]

Итак, я хочу заменить весь второй массив новым массивом, который у меня есть, поэтому я пытаюсь сделать это:

this.FirstArray.map(
          (myArray) =>
            myArray.SecondArray === this.MyNewArray
        )

Но это не заменяет мой новый массив, в котором все еще есть старые значения. Что я делаю не так?

this.FirstArray.map возвращает новый массив, который ваш код отбрасывает... вы также не заботитесь о myArray в каждой итерации, так что, опять же, почему вы вообще используете карту - ой, вы отредактировали
Bravo 13.05.2022 04:36

не могли бы вы создать некоторые переменные с каким-то значимым содержанием, а не очень расплывчатую, очень неуместную и очень недействительную «Структуру», которую вы опубликовали

Bravo 13.05.2022 04:37

Если вы просто заменяете и знаете этот индекс, вы можете просто FirstArray[0] = [...newArray]

Khant 13.05.2022 04:39

Есть разница между ===, == и =. В этом случае вам нужно =

Ifaruki 13.05.2022 10:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Обычно метод map() возвращает новый массив.

// Assume that your nested array looks like so:
let nestedArray = [
    ["A", "B", "C"],
    ["E", "F", "G"]
]

// Assume that this is the new array
const newArray = [1, 2, 3]

nestedArray = nestedArray.map(el => newArray);

// expected output: nestedArray [[1, 2, 3], [1, 2, 3]]
Ответ принят как подходящий

Вы можете добиться этого, используя оператор распространения и без какого-либо цикла, поскольку вы хотите заменить второй массив новым массивом.

Входной массив :

First Array
[{
  Second Array
   [{}]
}]

Логика замены newArray на secondArray:

FirstArray[0].secondArray = [ ...newArray ]

Демо :

const firstArray = [{
    secondArray: ['alpha', 'beta', 'gamma']
}];

const newArray = ['A', 'B'];

firstArray[0].secondArray = [ ...newArray ];

console.info(firstArray);

Другие вопросы по теме