javascript 创建二维数组,赋值中出现undefined
黄舟
黄舟 2017-04-11 09:54:32
[JavaScript讨论组]
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字样...感觉也不是什么正统方法

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
阿神
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];

楼上说得对

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号