Как преобразовать каждый массив в 2D-массив в строку в машинописи? - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь преобразовать каждый элемент в двухмерном массиве в строку. Так, например, я хотел бы преобразовать что-то вроде этого [['I Cjs', 'phCL'] ['ksRp', 'nyhk'] ['4956', 'UiFS']] во что-то вроде этого ['I Cjs - phCL', 'ksRp - nyhk', '4956- UiFS']

Я уже пытался преобразовать каждый массив в двухмерном массиве в строку и затем заменить ', ' с ' - '. Я получаю не могу прочитать свойство 'toString' из неопределенного.

const arr1 = [ [ 'ICjs', 'phCL' ] [ 'ksRp', 'nyhk' ] [ '4956', 'UiFS' ] ];
const arr2 = [];

for(let i = 0; i <= arr.length; i++) {
  const text = await arr[i].toString();
  await text.replace(/,/g, " - ");
  await arr2.push(text);
}
return arr2;

1 Ответ

0 голосов
/ 11 апреля 2020

Это можно легко сделать с помощью map ping каждого внутреннего массива в его join редактированную форму.

const arr2 = arr1.map(arr => arr.join(" - "));

Ошибка в вашем вопросе потому что вы выполняете итерацию от индекса 0 до индекса arr.length, однако массив длины arr.length имеет индексы только от 0 до arr.length - 1. Итак, на последней итерации вашего l oop вы получаете доступ к несуществующему индексу, который возвращает undefined, а затем вы вызываете toString() для этого несуществующего элемента.

Обратите внимание, что ECMAScript имеет несколько мощных итерационных конструкций, встроенных в его стандартную библиотеку. Как правило, вы можете сказать, что когда вы пишете oop, вы делаете что-то не так. Почти не нужно писать циклы в TypeScript.

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