Простой способ превратить массив JavaScript в список через запятую? - PullRequest
362 голосов
/ 14 октября 2008

У меня есть одномерный массив строк в JavaScript, который я хотел бы превратить в список через запятую. Есть ли простой способ в JavaScript для сада (или jQuery) превратить его в список через запятую? (Я знаю, как перебирать массив и сам строить строку путем конкатенации, если это единственный способ.)

Ответы [ 16 ]

1 голос
/ 08 июля 2017

Papa Parse (на основе браузера) обрабатывает запятые в значениях и других крайних случаях. Используйте Детский анализ для узла.

Например. (Узел)

const csvParser = require('babyparse');
var arr = [1,null,"a,b"] ;
var csv = csvParser.unparse([arr]) ;
console.log(csv) ;

1 ,, "а, б"

1 голос
/ 24 февраля 2016

Хотите ли вы закончить это с "и"?

Для этой ситуации я создал модуль npm.

Попробуйте Аррфорд :


Использование

const arrford = require('arrford');

arrford(['run', 'climb', 'jump!']);
//=> 'run, climb, and jump!'

arrford(['run', 'climb', 'jump!'], false);
//=> 'run, climb and jump!'

arrford(['run', 'climb!']);
//=> 'run and climb!'

arrford(['run!']);
//=> 'run!'


Установить

npm install --save arrford


Подробнее

https://github.com/dawsonbotsford/arrford


Попробуй сам

Тоническая связь

1 голос
/ 23 июня 2015

Принимая начальный код:

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

Первоначальный ответ на использование функции соединения идеален. Одна вещь, чтобы рассмотреть было бы конечное использование строки.

Для использования в некоторых концах текстового дисплея:

arr.join(",")
=> "Zero,One,Two"

Для использования в URL для передачи нескольких значений (в некоторой степени) RESTful способом:

arr.join("|")
=> "Zero|One|Two"

var url = 'http://www.yoursitehere.com/do/something/to/' + arr.join("|");
=> "http://www.yoursitehere.com/do/something/to/Zero|One|Two"

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

0 голосов
/ 30 января 2019

Начиная с Chrome 72 , можно использовать Intl.ListFormat :

const vehicles = ['Motorcycle', 'Bus', 'Car'];

const formatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });
console.log(formatter.format(vehicles));
// expected output: "Motorcycle, Bus, and Car"

const formatter2 = new Intl.ListFormat('de', { style: 'short', type: 'disjunction' });
console.log(formatter2.format(vehicles));
// expected output: "Motorcycle, Bus oder Car"

const formatter3 = new Intl.ListFormat('en', { style: 'narrow', type: 'unit' });
console.log(formatter3.format(vehicles));
// expected output: "Motorcycle Bus Car"

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

0 голосов
/ 01 июня 2017
var array = ["Zero", "One", "Two"];
var s = array + [];
console.log(s); // => Zero,One,Two
0 голосов
/ 07 ноября 2016
var arr = ["Pro1", "Pro2", "Pro3"];
console.log(arr.join());// Pro1,Pro2,Pro3
console.log(arr.join(', '));// Pro1, Pro2, Pro3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...