问答详情
源自:7-23 编程练习

JS一维数组拆分 的方法 编程二位数组失败了?

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var score_arr = scoreStr.split(';');
document.write(score_arr+'一维数组<br>');
document.write(score_arr.length+"一维数组长度<br>");
var score_arr_all = new Array();
for(var i= 0 ; i < score_arr.length; i++){
 //把一维数组分割为二位数组,然后把所有的二位数组都拼接,找到成绩。然后转换,求职
 //document.write(score_arr[i].split(':'));
 score_arr_all = score_arr_all.concat(score_arr[i].split(':'));  // 问题在这里,不会改变原来的,值产生一个新的数组,所以不会连续增加。
 score_arr_all[i]= score_arr[i].split(':');
}


----如上  用split 先用; 分号 拆分 成一维数组,然后想用冒号“:”拆分成二位数组 然后单独拿出成绩 进行计算。 但是发现拆分完后写入数组竟然是一维的。  跟其他语言不太一样。
该如何处理?

提问者:yummy5 2017-03-16 10:08

个回答

  • Fly_Jie
    2017-03-16 10:23:01
    已采纳

    //没怎么明白你的意思,你是否要得是结果是 [{name:"小明",score:87}...]这种结果?如果是...
    var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
    var splitArr = scoreStr.split(";");
    var resultArr = [];
    splitArr.forEach(function(item,itemIndex){
        var tempArr = item.split(":");
        resultArr.push({name:tempArr [0],score:tempArr [1]})
    });
    console.table(resultArr);