javascript 创建二维数组,赋值中出现undefined
本文介绍了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屋!
查看全文