我有一个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