首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用分隔符拆分字符串数组

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

Stack Overflow用户
提问于 2013-05-12 11:15:14
回答 2查看 7.7K关注 0票数 4

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

代码语言:javascript
复制
var theArray = [["Split,each"],["string, in"],["this, array"]];

据我所知,不可能将string.split(",")方法应用于多维数组。我需要找到一个变通方法,因为此代码无效:

代码语言:javascript
复制
alert([["Split,each"],["string, in"],["this","array"]].split(","));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-12 11:16:26

使用数组map方法返回数组的修改版本:

代码语言:javascript
复制
var newArray = theArray.map(function(v,i,a){
   return v[0].split(",");
});

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

然后输出为:

代码语言:javascript
复制
[["Split", "each"],["string", "in"],["this", "array"]];

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

代码语言:javascript
复制
var newArray = theArray.map(function mapper(v,i,a){
    if(typeof v == "string"){
        return v.split(",");
    } else {
        return v.map(mapper);
    }
});
票数 8
EN

Stack Overflow用户

发布于 2013-05-12 11:17:20

您可以使用传统的for循环来完成此操作:

代码语言:javascript
复制
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不支持)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16503844

复制
相关文章

相似问题

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