Преобразовать массив в строку с добавлением номеров каждого элемента массива? - PullRequest
0 голосов
/ 17 декабря 2018

var array = ['a', 'b', 'c']
function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    console.log(array.join());
  }
}

arrayTransform(array);

результат должен быть 1.a, 2.b, 3.c Я получаю abc

Ответы [ 4 ]

0 голосов
/ 17 декабря 2018

Добро пожаловать в Stackoverflow.Не могли бы вы использовать решение ES6, как описано ниже.Дайте мне знать, если вам это нужно в ES5.

let result = array.map((val, i) => i + 1 + "." + val);
console.log(result);
0 голосов
/ 17 декабря 2018

Кажется, вы не хотите добавить индекс с элементом.В этом случае используйте функцию map, которая вернет массив, а затем используйте join для создания окончательной строки

var array = ['a', 'b', 'c']

function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    return array.map((item, index) => {
      return `${index+1}.${item}` // template literals

    }).join()
  }
}

console.log(arrayTransform(array));
0 голосов
/ 17 декабря 2018

Вы можете использовать .reduce(), чтобы получить результирующую строку:

let data = ['a', 'b', 'c'];

let reducer = arr => arr.length ?
                     arr.reduce((r, c, i) => (r.push(`${i + 1}.${c}`), r), []).join() :
                     'Empty';

console.log(reducer(data));
console.log(reducer([]));
0 голосов
/ 17 декабря 2018

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

var array = ['a', 'b', 'c']
function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    console.log(array.map((v, i) => [i + 1, v].join('.')).join());
  }
}

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