Элементы массива в строку

178
25 марта 2018, 23:09

Есть массив, вывожу из него только нужные мне значения следующим кодом:

for (var i = 0; i < arrUs.length; i++) {
     console.log(arrUs[i][1]);
} 
//результат: one . two . three

Как на выходе получить строку: one;two;three ?

Пробовал так:

var str;
for (var i = 0; i < arrUs.length; i++) {
     console.log(arrUs[i][1]);
     str = arrUs[i][1].join(';');
} 

Но не получается. Что я делаю не так?

Answer 1
var numbers = ["one", "two", "three"];
var numbers_string = numbers.join(';');
console.log(numbers_string);

https://jsfiddle.net/z5ccj5ex/23/

Answer 2

join нужно применять на массиве, а не на конкретном элементе массива. А даже если бы он сработал, то вы всё равно на каждой итерации затираете предыдущее значение str.

Что можно сделать для двумерного массива:

  • выбрать нужные значения в новый массив с помощью map
  • соединить элементы нового массива в строку через разделитель с помощью join

Пример:

var arrUs = [["1", "one"], ["2", "two"], ["3", "three"]]; 
var result = arrUs.map(function(value) { return value[1]; }).join(";"); 
console.log(result);

И то же самое с использованием lambda-функции:

var arrUs = [["1", "one"], ["2", "two"], ["3", "three"]]; 
var result = arrUs.map(value => value[1]).join(";"); 
console.log(result);

READ ALSO
Проблемы с переносом на gatsby

Проблемы с переносом на gatsby

Cоздал front-end на react-create-app и решил натянуть на Gatsbyjs, но тут возникла проблема компонент Header

194
Sublimetext. Как включить автоматический комплит js кода в html файле?

Sublimetext. Как включить автоматический комплит js кода в html файле?

Установлен Sublimetex 3 и плагин Java​Script CompletionsЕсли я пишу javascript код в

215
Не работает innerHTML

Не работает innerHTML

Почему не работает данный код?

211
Как от текущей даты отнять 30 минут?

Как от текущей даты отнять 30 минут?

Как отнять минуты от текущей даты?

201