javascript 创建二维数组,赋值中出现undefined

查看:209
本文介绍了javascript 创建二维数组,赋值中出现undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var L = new Array(),
R = new Array();
var msg64 = "1010101111001101011001111000100111101111000000010010001101000101";
var tmp_L = msg64.substr(0, 32),
tmp_R = msg64.substring(32);
L[0] = [],
R[0] = [];

for (let i = 0; i < 32; i++) {
    L[0][parseInt(i / 4)] += tmp_L[i];
    R[0][parseInt(i / 4)] += tmp_R[i];
}
console.log(L[0]);
console.log(R[0]);


尝试过判断每个二维第一个,先赋值,实践之后依然存在undefined,很不解.请问是否有解决办法~


  for( let i = 0; i < 8; i++){   //REMOVE undefined
    L[0][i] = L[0][i].replace(/undefined/,'');
    R[0][i] = R[0][i].replace(/undefined/,'');
  }

尝试了一个办法,直接正则替换,强行去掉undefined字样...感觉也不是什么正统方法

解决方案

var L = new Array(),
R = new Array();
var msg64 = "1010101111001101011001111000100111101111000000010010001101000101";
var tmp_L = msg64.substr(0, 32),
tmp_R = msg64.substring(32);
L[0] = [],
R[0] = [];
for (let i = 0; i < 32; i++) {
    **if (L[0][parseInt(i / 4)] === undefined) {
        L[0][parseInt(i / 4)] = '';
        R[0][parseInt(i / 4)] = '';
    }**
    L[0][parseInt(i / 4)] += tmp_L[i];
    R[0][parseInt(i / 4)] += tmp_R[i];
}

在你的循环体内,你循环的时候,第一项、第二项、第三项....第八项的没有初始值即undefined,所以每次拼接字符串的时候前面都有undefined。不知道说的清楚吗,希望能帮到你

这篇关于javascript 创建二维数组,赋值中出现undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆