Javascript 为什么切片这个字符串并使其成为数组会给数组的元素添加未定义的元素?

Javascript 为什么切片这个字符串并使其成为数组会给数组的元素添加未定义的元素?,javascript,Javascript,这是我的代码-我想将字符串“areas”的一部分存储到数组中。 不幸的是,我得到了未定义的附加到数组元素。我对javascript和整个编码都是新手 任何帮助都将是惊人的:-) let area='10110111000110100111011001110000101011000101010100010011001101100110100000101001110101'; //检查警卫 leftGuard=面积。substr(0,3); 如果(leftGuard!=“101”) { 返回resu

这是我的代码-我想将字符串“areas”的一部分存储到数组中。 不幸的是,我得到了未定义的附加到数组元素。我对javascript和整个编码都是新手

任何帮助都将是惊人的:-)

let area='10110111000110100111011001110000101011000101010100010011001101100110100000101001110101';
//检查警卫
leftGuard=面积。substr(0,3);
如果(leftGuard!=“101”)
{
返回result.message1;
}
中心护板=面积。分块(45,5);
如果(centerGuard!=“01010”)
{
返回result.message2;
}
rightGuard=面积。substr(92,3);
如果(rightGuard!=“101”)
{
返回结果。消息3;
}
//将区域字符串分隔为左右数字并存储在数组中
设newAreaLeft=areas.slice(3,45);
设newAreaRight=areas.slice(51,92);
//左数。
设i=0,j=0;
而(j<42)
{
realLeft[i]+=newAreaLeft.substr(j,7);
j+=7;
我++
}
输出:


undefined0110111、UNDEFINED001101、undefined0100111、UNDEFINED001111、UNDEFINED000101、UNDEFINED110001将数组中未初始化的元素作为
未定义的
返回,并在字符串表达式中转换为“undefined”

尝试使用直接赋值而不是
+=
设置
reallleft
,以覆盖未定义的条目(如果可以接受):

或在追加之前将未初始化的值设置为空字符串:

realLeft[i] = realLeft[i] || ""; // change falsey values to empty string
realLeft[i] += newAreaLeft.substr(j,7);

不要张贴代码的图片。发布实际代码。对不起,我是新手。只是做了你说的改变。
 realLeft[i] = newAreaLeft.substr(j,7);
realLeft[i] = realLeft[i] || ""; // change falsey values to empty string
realLeft[i] += newAreaLeft.substr(j,7);