为什么当我打印数组的元素时,它以 undefined 开头,然后是我插入的数字

蚂蚁管

为什么当我打印数组的元素时,它以 undefined 开头,然后是我插入的数字。我什至尝试 cosnole.log(search[j]) 并且它正是我想要的。但出于某种原因,我认为我所做的第一个 += 是未定义的。

function new_vid(){
let x=1;
console.log("################################################################");
for(let i=0; i<search1.length; i++){
    if(search1[i]=="s" && search1[i+1]=="n" && search1[i+2]=="i" && search1[i+3]=="p" && search1[i+4]=="p" && search1[i+5]=="e" && search1[i+6]=="t"){
        for(let j=i+36; j<i+46; j++){
            console.log(search1[j]);
            dates[x]+=search1[j];
        }
        x++; 
    }
}
console.log(dates[0]);
console.log(dates[1]);

console.log("##################################################################");
}

输出是:

未定义2021-08-04

未定义2021-08-01

缠扰者

dates[x]undefined第一次插入之前。dates[x] += search1[j]在原则上执行以下操作:

dates[x] = dates[x] + search1[j]

undefined + "foo"结果undefinedfoo是 JS。

dates[x] = (dates[x] || "") + search1[j]

dates[x] || ""如果dates[x]未定义,这种方式将返回空字符串,从而将空字符串与search1[j]

但是,正如您所说,您来自 C++ 背景,我有点怀疑您在没有任何边界检查的情况下粗心地使用索引。你的算法会越界,因为你i在整个search1数组中迭代你的索引,然后访问一个 index i+1i+2甚至i+36.

这不会在 JS 中崩溃,但请注意,如果索引超出数组范围,search1[j]也会返回,因此您可能需要undefinedj

dates[x] = (dates[x] || "") + (search1[j] || "")

以及。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么当我打印数组内容时,使用awk会给我错误的输出

当我尝试访问元素的数据时,为什么jQuery返回undefined?

当我尝试使用指针打印数组元素时,将打印垃圾值

为什么我不能打印数组?

为什么当我尝试打印出数组元素时“ \ n”消失?

当我在Swift中打印数组时,它的类型(<__ NSArrayM 0x60800024a1a0>)也随之而来。为什么?

当我尝试打印封面数组时,为什么我的输出为空?

为什么函数 getSafestCountriesNames() 在我调用它时返回 promise{pending} 而当我使用 async/await 时它返回 undefined?

我在链表开头插入数字的代码无法编译

当我在模块导出中使用它时,为什么带有 return 的函数给我 undefined?节点.js

当我尝试读取 object[key].value 时,为什么我有一个 undefined?

为什么当我尝试在 react.js 中获取图像的高度和宽度时返回 undefined

为什么我在使用这个函数时得到 undefined?

在Python上使用BeautifulSoup4时,为什么当我尝试打印“ <p>”元素时,结果为'None'?

当我可以输出完整的数组时,使用 JQuery 为什么我不能输出从 DOM 生成的单个数组元素?

当我的列表中有 3 个元素时,为什么它会打印列表 1 的长度

当我尝试从自定义数组中删除元素时,为什么Java会向我显示“越界”异常?

为什么当我将曲目推到数组时,数组中的所有元素都改变了

我想在此代码中打印数组元素的编号

当我遍历数组值时,它会打印一个随机数。为什么是这样?

当我尝试在 Room 中插入元素时,为什么会出现“空对象引用”异常?

使用Ruby:为什么我的数组先打印结果,然后再打印带有idex数字的数组

我的插入 python 排序总是将第二个数字放在开头

当我将数字视为数组时,为什么没有 Typescript 编译错误?

为什么当我希望awk打印变量时,它会打印整行?

当我的 redux 存储更新时 useContext 返回 undefined

当我尝试访问 redux 状态时,它返回 undefined

当我读取 json 数据时,获取 `undefined is not an object`

当我保存方法的返回时,它会保存 undefined