首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JavaScript数组转换为逗号分隔列表的简单方法?

将JavaScript数组转换为逗号分隔列表的简单方法?
EN

Stack Overflow用户
提问于 2008-10-14 15:47:17
回答 16查看 525K关注 0票数 481

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

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2008-10-14 15:48:48

Array.prototype.join()方法:

代码语言:javascript
复制
var arr = ["Zero", "One", "Two"];

document.write(arr.join(", "));

票数 908
EN

Stack Overflow用户

发布于 2017-03-25 18:19:19

如果你需要在最后两个项目之间使用“and”而不是",“,你可以这样做:

代码语言:javascript
复制
function arrayToList(array){
  return array
    .join(", ")
    .replace(/, ((?:.(?!, ))+)$/, ' and $1');
}
票数 18
EN

Stack Overflow用户

发布于 2014-03-05 06:41:05

这是一个将二维数组或列的数组转换为正确转义的CSV字符串的实现。这些函数不检查有效的字符串/数字输入或列计数(确保您的数组从一开始就是有效的)。单元格可以包含逗号和引号!

这是一个script for decoding CSV strings

这是我的script for encoding CSV strings

代码语言:javascript
复制
// Example
var csv = new csvWriter();
csv.del = '\t';
csv.enc = "'";

var nullVar;
var testStr = "The comma (,) pipe (|) single quote (') double quote (\") and tab (\t) are commonly used to tabulate data in plain-text formats.";
var testArr = [
    false,
    0,
    nullVar,
    // undefinedVar,
    '',
    {key:'value'},
];

console.log(csv.escapeCol(testStr));
console.log(csv.arrayToRow(testArr));
console.log(csv.arrayToCSV([testArr, testArr, testArr]));

/**
 * Class for creating csv strings
 * Handles multiple data types
 * Objects are cast to Strings
 **/

function csvWriter(del, enc) {
    this.del = del || ','; // CSV Delimiter
    this.enc = enc || '"'; // CSV Enclosure

    // Convert Object to CSV column
    this.escapeCol = function (col) {
        if(isNaN(col)) {
            // is not boolean or numeric
            if (!col) {
                // is null or undefined
                col = '';
            } else {
                // is string or object
                col = String(col);
                if (col.length > 0) {
                    // use regex to test for del, enc, \r or \n
                    // if(new RegExp( '[' + this.del + this.enc + '\r\n]' ).test(col)) {

                    // escape inline enclosure
                    col = col.split( this.enc ).join( this.enc + this.enc );

                    // wrap with enclosure
                    col = this.enc + col + this.enc;
                }
            }
        }
        return col;
    };

    // Convert an Array of columns into an escaped CSV row
    this.arrayToRow = function (arr) {
        var arr2 = arr.slice(0);

        var i, ii = arr2.length;
        for(i = 0; i < ii; i++) {
            arr2[i] = this.escapeCol(arr2[i]);
        }
        return arr2.join(this.del);
    };

    // Convert a two-dimensional Array into an escaped multi-row CSV 
    this.arrayToCSV = function (arr) {
        var arr2 = arr.slice(0);

        var i, ii = arr2.length;
        for(i = 0; i < ii; i++) {
            arr2[i] = this.arrayToRow(arr2[i]);
        }
        return arr2.join("\r\n");
    };
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/201724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档