我有一个JavaScript中的一维字符串数组,我想把它转换成一个逗号分隔的列表。在普通JavaScript(或jQuery)中是否有一种简单的方法将其转换为逗号分隔的列表?(我知道如何通过数组迭代,并通过连接自己构建字符串,如果这是唯一的方法。)
当前回答
我喜欢https://jsfiddle.net/rwone/qJUh2/上的解决方案,因为它在逗号后添加了空格:
array = ["test","test2","test3"]
array = array.toString();
array = array.replace(/,/g, ", ");
alert(array);
或者,正如@ stackover缺陷在评论中建议的那样:
array.join(', ');
其他回答
使用内置的Array。toString方法
var arr = ['one', 'two', 'three'];
arr.toString(); // 'one,two,three'
Array.toString()上的MDN
取初始代码:
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"
当然,这完全取决于最终的用途。只要记住数据源和使用方法,一切都将是正确的。
你想以"and"结尾吗?
对于这种情况,我创建了一个npm模块。
试试arrford:
使用
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
自己试试吧
主音链接
Array.prototype.join()方法:
var arr = [" 0 ", " 1 ", " 2 "]; document . write(加勒比海盗。加入(","));
实际上,toString()实现默认使用逗号进行连接:
var arr = [ 42, 55 ];
var str1 = arr.toString(); // Gives you "42,55"
var str2 = String(arr); // Ditto
我不知道这是否是JS规范的要求,但这是几乎所有浏览器都在做的事情。