gpt4 book ai didi

javascript - array.length 可信吗?

转载 作者:行者123 更新时间:2023-11-29 16:36:26 29 4
gpt4 key购买 nike

let arr = [];
arr[3] = undefined;
console.log('length: ',arr.length);

if(arr.length === 0){
//I wanted to come here
}else{
//But instead coming here
console.log('>>',arr[0]);
console.log('>>',arr[3]);
}

我刚刚注意到,如果我们不使用 push 函数将项目插入数组,即使我们分配 undefined ,长度也会更新。显然,上面显示的 arr 里面什么也没有。

在条件检查期间,我们如何才能真正确定数组为空?我只能想到手动循环数组并执行 count++ ,这看起来非常多余。

最佳答案

Array.length:

The value is an unsigned, 32-bit integer that is always numerically greater than the highest index in the array.

当您分配 undefined对于数组的索引,该索引将成为该数组上的现有属性。但是,像任何变量一样,它可以分配任何内容,包括 nullundefined .

如果您遇到过这样的情况(您不应该这样做 - 稀疏数组是一个糟糕的主意),您可以检查 keyskeysvalues数组的:

const arr = [];
arr[3] = undefined;
console.log(Object.keys(arr)); // Not empty!

const allArrElmsAreUndefined = arr => Object.values(arr).every(item => item === undefined);
console.log(allArrElmsAreUndefined(arr));

关于javascript - array.length 可信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50938962/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com