Применить условный оператор к каждому элементу в массиве - PullRequest
1 голос
/ 11 марта 2019

У меня есть следующий код:

if (res[0].toString() == "hello") { res[0] = "string"; };

Это работает, но я бы хотел, чтобы он применялся не только к первому элементу, но и для каждого элемента.

Кто-нибудь знает, как это сделать?

Редактировать: Решено.Спасибо людям.

Ответы [ 3 ]

2 голосов
/ 11 марта 2019

Вы можете переназначить сопоставленное значение.

res = res.map(o => o === "hello" ? "string" : o);
0 голосов
/ 11 марта 2019

Это операция .map .

const arr = [
  'hello',
  'World',
  'Hello',
  8,
];
arr2 = arr.map((el) => {
  if(el.toString() === 'hello') return 'string';
  return el;  // return the original unchanged
});
console.log(arr2);

выдаст

[ 'string', 'World', 'Hello', 8 ]
0 голосов
/ 11 марта 2019
 res = res.map(it => it === "hello" ? "string" : it);

или

for(const [index, value] of res.entries())
 if(value === "hello") res[index] = "string";

Вам, вероятно, не понадобится .toString() (я предполагаю, что это уже строка) и всегда используйте ===, за исключением того, что вы действительно знаете, почему ==будет лучше (в очень редких случаях)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...