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。不知道说的清楚吗,希望能帮到你
L[0][parseInt(i / 4)] = (L[0][parseInt(i / 4)] || '') + tmp_L[i];
R[0][parseInt(i / 4)] = (R[0][parseInt(i / 4)] || '') + tmp_R[i];
楼上说得对