как искать значение с определенным индексом в массиве и изменять его значение?

#javascript #arrays #for-loop

#javascript #массивы #for-цикл

Вопрос:

У меня есть два массива, первый содержит два числа, а второй 12 значений.

 firstArray = [0, 6];

secondArray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];


  

Я хочу взять номера первого массива и проверить, совпадает ли индекс второго массива, а затем изменить значение совпадающих.

В этом случае вывод будет

 secondArray = ["blank", "February", "March", "April", "May", "June", "blank", "August", "September", "October", "November", "December"];

  

Я пытался выполнить цикл for для получения значений в firstArray, но я получаю индексы, а не значение

     for (let i = 0; i < this.state.lastIndex.length; i  ) {

    }

  

hay
Как я могу это сделать?
Есть ли какой-либо способ сделать его более прямым, чем с помощью for-цикла?

спасибо за вашу помощь

Комментарии:

1. » Есть ли какой-нибудь способ сделать это более прямым, чем с помощью цикла for? » если у вас есть только два элемента в первом массиве, тогда вы можете просто сделать secondArray[firstArray[0]] и secondArray[firstArray[1]]

2. secondArray[firstArray[0]] = "blank" и secondArray[firstArray[1]] = "blank"

Ответ №1:

Для oneliner вы можете использовать map из Array.prototype :

 secondArray = secondArray.map((element, index) => firstArray.includes(index) ? "blank" : element )
  

Пожалуйста, обратите внимание, что функция map возвращает новый массив вместо изменения исходного.

Редактировать: удалены избыточные return и фигурные скобки вокруг тела функции со стрелкой

Комментарии:

1. спасибо, это идеальное решение для того, что я искал!!

Ответ №2:

firstArray.map(e=>{if(secondArray[e]){secondArray[e]=»пустой»}})

Ответ №3:

 firstArray = [0, 6]; 
secondArray = ["January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December"];

for(let i = 0; i < firstArray.length; i  ) {
    secondArray[firstArray[i]]="blank";
}
console.log(secondArray);
  

PS: Все, что вам нужно сделать, просто перебрать первый массив и обновить значения второго массива по индексу