создание новых значений по индексу в циклах / массивах JS - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть массив значений:

let myArray = [ 'Ifmanwas',
  'meanttos',
  'tayonthe',
  'groundgo',
  'dwouldha',
  'vegivenu',
  'sroots' ]

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

Так, например, вывод первого массива будет "Imtgdvs" (все буквы в ("0")второй будет «страхом» (все буквы в индексе «1») и т. д. ...

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

Для этой простой попытки я создал массив всех букв для первого экземпляра:

function convertToCode(box) {


  let arr = [];
  for (i = 0; i < box.length; i++) {
    let counter = i;
    let index = box[counter];
    let letter = index.charAt(0);

    arr.push(letter);
  }
  console.log(arr);
}


convertToCode(myArray)

Спасибо

1 Ответ

1 голос
/ 05 апреля 2019

Основная проблема в вашем примере: index.charAt(0);.Это всегда будет получать первый символ, тогда как вам нужен вложенный цикл.

Вы можете использовать Array.map() в сочетании с Array.reduce(), например, так:

let myArray = ['Ifmanwas','meanttos','tayonthe','groundgo','dwouldha','vegivenu','sroots'];

const result = Array.from(myArray[0])                              //Create an array as long as our first string
  .map((l,idx) =>                                                  //Update each item in that array...
    myArray.reduce((out,str) => str[idx] ? out+str[idx] : out, "") //to be a combination of all letters at index [idx] from original array
  );

console.log(result);

Обратите внимание, что здесь используется строка first в массиве, чтобы решить, сколько строк сделать, в отличие от longon строка.

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