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


当前回答

从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和其他浏览器不兼容。

其他回答

取初始代码:

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"

当然,这完全取决于最终的用途。只要记住数据源和使用方法,一切都将是正确的。

在这里,您可以使用任何char进行分离,也可以仅使用foreach获取任何属性列表

let taskIds: string = '';    
this.checkedTaskList.forEach(res => {
  taskIds = taskIds + res.taskId.toString() + ','
});
if (taskIds) {
    taskIds.substring(0, taskIds.length - 1),**
}

我认为这应该做到:

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(',');

小提琴

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

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”

简单的数组

let simpleArray = [1,2,3,4] let commaSeperated = simpleArray.join(","); console.log (commaSeperated);

以逗号分隔的特定属性的对象数组。

let arrayOfObjects = [ { Id: 1, 姓名:“姓名1”, 地址:“地址1” }, { Id: 2, 姓名:“姓名2”, 地址:“地址2” }, { Id: 3, 姓名:“姓名3”, 地址:“地址3” }) let names = arrayOfObjects。Map (x => x.name).join(", "); console.log(名称);

结果

Name 1, Name 2, Name 3