Создание строк из умножения массива - PullRequest
0 голосов
/ 18 мая 2018

Я хочу создать функцию javascript, которая выводит строки в результате умножения массива.

Первое число массива будет умножено на второе, в результате чего получится строка, как показано ниже.

Напримеркогда:

console.log(repeatNumbers([[1, 10]]));
console.log(repeatNumbers([[1, 2], [2, 3]]));

В результате получится:

1111111111
11, 222

Я изо всех сил пытаюсь избежать возвращения простых умножений, таких как 1 * 10 = 10, и получить полную строку (w/ o запятые).

Любой совет был бы великолепен - спасибо.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

на самом деле вы можете сделать это, используя map вместо array, а затем применить repeat функцию string (вам нужно проанализировать от number до string).

repeatNumbers = (array) => array.map(item => item[0].toString().repeat(item[1]));

console.log(repeatNumbers([
  [1, 10]
]));

console.log(repeatNumbers([
  [1, 2],
  [2, 3]
]));
0 голосов
/ 18 мая 2018

Вы можете использовать функцию конструктора массива для создания массива заданной длины.Затем используйте метод массива .fill, чтобы заполнить новый массив нужной вещью.Наконец, вы можете использовать join для преобразования заполненного массива обратно в строку.В вашем случае для каждой пары первый элемент - это то, чем нужно заполнить массив, а второй - желаемая длина.

Выполните этот процесс для каждого элемента в переданном массиве (используя map),и соедините их запятыми, и вы получите результат из вашего примера:

function repeatNumbers(arr) {
  return arr
    .map(pair => Array(pair[1]).fill(String(pair[0])).join(""))
    .join(", ");
}

console.log(repeatNumbers([[1, 10]]));
console.log(repeatNumbers([[1, 2], [2, 3]]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...