我有一个JavaScript中的一维字符串数组,我想把它转换成一个逗号分隔的列表。在普通JavaScript(或jQuery)中是否有一种简单的方法将其转换为逗号分隔的列表?(我知道如何通过数组迭代,并通过连接自己构建字符串,如果这是唯一的方法。)


当前回答

有很多方法可以将数组转换为逗号分隔的列表

1. 使用数组#加入

从MDN

join()方法将数组(或类数组对象)的所有元素连接到一个字符串中。

的代码

var arr = ["this","is","a","comma","separated","list"];
arr = arr.join(",");

片段

var arr =(“这”,“是”,“一个”,“逗号”,“分离”,“名单”); Arr = Arr .join(","); console.log (arr);

2. 使用数组# toString

从MDN

toString()方法返回一个表示指定数组及其元素的字符串。

的代码

var arr = ["this","is","a","comma","separated","list"];
arr = arr.toString();

片段

var arr =(“这”,“是”,“一个”,“逗号”,“分离”,“名单”); arr = arr. tostring (); console.log (arr);

3.在数组前添加[]+或在数组后添加+[]

[]+或+[]将其转换为字符串

证明

([]+[] === [].toString())

输出为true

console.log([]+[] === [].toString());

var arr = ["this","is","a","comma","separated","list"];
arr = []+arr;

片段

var arr =(“这”,“是”,“一个”,“逗号”,“分离”,“名单”); Arr = []+ Arr; console.log (arr);

Also

var arr = ["this","is","a","comma","separated","list"];
arr = arr+[];

var arr =(“这”,“是”,“一个”,“逗号”,“分离”,“名单”); Arr = Arr + []; console.log (arr);

其他回答

如果你需要用“and”代替“”,在最后两项之间,你可以这样做:

function arrayToList(array){
  return array
    .join(", ")
    .replace(/, ((?:.(?!, ))+)$/, ' and $1');
}

Papa Parse处理值中的逗号和其他边缘情况。

(Baby Parse for Node已弃用-你现在可以在浏览器和Node中使用Papa Parse。)

如。(节点)

const csvParser = require('papaparse'); // previously you might have used babyparse
var arr = [1,null,"a,b"] ;
var csv = csvParser.unparse([arr]) ;
console.log(csv) ;

1,,“a,b”

我认为这应该做到:

var arr = ['contains,comma', 3.14, 'contains"quote', "more'quotes"]
var item, i;
var line = [];

for (i = 0; i < arr.length; ++i) {
    item = arr[i];
    if (item.indexOf && (item.indexOf(',') !== -1 || item.indexOf('"') !== -1)) {
        item = '"' + item.replace(/"/g, '""') + '"';
    }
    line.push(item);
}

document.getElementById('out').innerHTML = line.join(',');

小提琴

基本上,它所做的就是检查字符串是否包含逗号或引号。如果是,那么它将所有的引号都翻倍,并在结尾加上引号。然后用逗号将每个部分连接起来。

var array = ["Zero", "One", "Two"];
var s = array + [];
console.log(s); // => Zero,One,Two

使用内置的Array。toString方法

var arr = ['one', 'two', 'three'];
arr.toString();  // 'one,two,three'

Array.toString()上的MDN