使用分隔符拆分字符串数组

时间:2013-05-12 03:15:14

标签: javascript string split

在JavaScript中,是否可以使用分隔符将每个字符串拆分为多维字符串数组?我正在尝试使用字符串分隔符拆分多维数组的字符串,但我还不知道如何在不使用多个for循环的情况下迭代多维数组。

var theArray = [["Split,each"],["string, in"],["this, array"]];

据我所知,无法将string.split(",")方法应用于多维数组。我需要找到一种解决方法,因为此代码无效:

alert([["Split,each"],["string, in"],["this","array"]].split(","));

2 个答案:

答案 0 :(得分:5)

使用Array map方法返回阵列的修改版本:

var newArray = theArray.map(function(v,i,a){
   return v[0].split(",");
});

作为map方法的参数传递的函数用于确定映射数组中的值。如您所见,该函数获取数组中的每个值,用逗号分隔它,并返回两个字符串的结果数组。

然后输出:

[["Split", "each"],["string", "in"],["this", "array"]];

要对任意深度的数组递归地执行此操作,可以使用:

var newArray = theArray.map(function mapper(v,i,a){
    if(typeof v == "string"){
        return v.split(",");
    } else {
        return v.map(mapper);
    }
});

答案 1 :(得分:3)

您可以使用传统的for循环执行此操作:

var theArray = [["Split,each"],["string, in"],["this","array"]];

for(var i = 0; i<theArray.length; i++) {
    theArray[i] = theArray[i].split(",");
}

我没有使用map方法it doesn't have great support。 (IE&lt; 9不支持它)