首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的三维数组分割

javascript中的三维数组分割
EN

Stack Overflow用户
提问于 2014-03-09 13:46:13
回答 2查看 145关注 0票数 1

我对斯普利特有意见。我有一个很长的字符串,我想用三维数组填充它。

代码语言:javascript
复制
var str = "normal/zapnout-0-1/vypnout-1-1%nocni/zapnout-2-1/vypnout-3-1*list/film-4-1/manual-5-1/auto-6-1*obyvak/světlo-7-1/krb-8-1/žaluzie-9-1/televize-10-1%světlo-11-1/okno-12-1%světlo-13-1/okno-14-1%pokoj/světlo-15-1";
 var res = str.split("*");
 var res2 = new Array();
 var res3 = new Array();

 for (var i = 0; i < res.length; i++) {
     res2[i] = res[i].split("%");
     for (var t = 0; t < res2[i].length; t++) {
         res3[i]= new Array();
         res3[i][t]=res2[i][t].split("/");
     }
 }
 document.getElementById("demo2").innerHTML = res3;

但问题是,res3的结果是:

,nocni,zapnout-2-1,vypnout-3-1,列表,胶片-4-1,手动-5-1,auto-6-1,,,ě

我不知道问题出在哪里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-09 14:31:53

试试这个:

代码语言:javascript
复制
 var str = "normal/zapnout-0-1/vypnout-1-1%nocni/zapnout-2-1/vypnout-3-1*list/film-4-1/manual-5-1/auto-6-1*obyvak/světlo-7-1/krb-8-1/žaluzie-9-1/televize-10-1%světlo-11-1/okno-12-1%světlo-13-1/okno-14-1%pokoj/světlo-15-1";
 var res = str.split("*");
 for(var i=0; i< res.length;i++){
     res[i] = res[i].split("%");
     for(var j=0;j< res[i].length;j++){
         res[i][j] = res[i][j].split("/");
     }
 }
 console.log(res);

另外,您需要知道的是,您的代码存在重新初始化res3i而不是使其为res3i的问题。这应该是您的代码:

代码语言:javascript
复制
 var str = "normal/zapnout-0-1/vypnout-1-1%nocni/zapnout-2-1/vypnout-3-1*list/film-4-1/manual-5-1/auto-6-1*obyvak/světlo-7-1/krb-8-1/žaluzie-9-1/televize-10-1%světlo-11-1/okno-12-1%světlo-13-1/okno-14-1%pokoj/světlo-15-1";
var res = str.split("*");
var res2 = new Array();
var res3 = new Array();

for (var i = 0; i < res.length; i++) {
    res2[i] = res[i].split("%");
    res3[i] = new Array();
    for (var t = 0; t < res2[i].length; t++) {
        res3[i][t]= new Array();
        res3[i][t]=res2[i][t].split("/");
    }
}

但是,请不要以这种方式使用变量,因为对于一个大型应用程序来说,这将是一个内存杀手。

票数 1
EN

Stack Overflow用户

发布于 2014-03-09 13:48:18

试试下面的。默认情况下,JavaScript在打印数组时去掉括号和引号。

代码语言:javascript
复制
document.getElementById("demo2").innerHTML = JSON.stringify(res3);

下面是逻辑的一个工作实现:

代码语言:javascript
复制
var res3 = str.split('*').map(function(segment) {
    return segment.split('%').map(function(segment) {
        return segment.split('/');
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22282967

复制
相关文章

相似问题

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