Javascript 为什么空数组通过if(array!=[])检查
嗨,我一直在调试一个javascript问题,其中一个空数组默认值设置为state,通过一个条件检查,该检查检查是否为空 我一定是忽略了什么。以下是我所拥有的:Javascript 为什么空数组通过if(array!=[])检查,javascript,arrays,if-statement,Javascript,Arrays,If Statement,嗨,我一直在调试一个javascript问题,其中一个空数组默认值设置为state,通过一个条件检查,该检查检查是否为空 我一定是忽略了什么。以下是我所拥有的: state = { array: [] }; if(array !== []){ //do something } 我还检查了它是否为空——尽管我需要扩展它,以便这个[]数组不返回true 我还尝试了array.length>0来代替检查[] 有什么想法吗 谢谢您想先检查未定义。如果反过来做,如果数组未定义,它将生成一个错误
state = {
array: []
};
if(array !== []){
//do something
}
我还检查了它是否为空——尽管我需要扩展它,以便这个[]数组不返回true
我还尝试了array.length>0来代替检查[]
有什么想法吗
谢谢您想先检查未定义。如果反过来做,如果数组未定义,它将生成一个错误
if (array === undefined || array.length == 0) {
// array empty or does not exist
}
它们不相等,因为在检查中使用了一个新数组,它指向内存中的新位置 所以,这只是两个空数组,但它们并不指向内存中的同一点(因为数组不是基元类型)。这就是他们不平等的原因
在这里,您可以找到一些有效的方法来检查:。注意
[]=[]
返回false
。它比较了这些数组的“指针”。感谢您的及时响应。如果在!==[]检查?也就是说,在适当实施isEmpty的情况下,没有必要这样做。不客气。