在JavaScript中,是否可以使用分隔符将每个字符串分成多维数组?我正在尝试使用字符串分隔符拆分多维数组字符串数组,但我还不知道如何在不使用多个for循环的情况下迭代多维数组。
var theArray = [["Split,each"],["string, in"],["this, array"]];据我所知,不可能将string.split(",")方法应用于多维数组。我需要找到一个变通方法,因为此代码无效:
alert([["Split,each"],["string, in"],["this","array"]].split(","));发布于 2013-05-12 11:16:26
使用数组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);
}
});发布于 2013-05-12 11:17:20
您可以使用传统的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 <9不支持)
https://stackoverflow.com/questions/16503844
复制相似问题