javascript多维数组是有效的

javascript多维数组是有效的,javascript,arrays,multidimensional-array,isset,Javascript,Arrays,Multidimensional Array,Isset,我有一个数组,看起来有点像内存[indexGroup][indexItem]。我如何检查它是否有效,换句话说,当使用console.log并获取一个值时,它是否有效,而不是null、未定义或其他非值。空、0和false有效。这些不会给出错误 这就是我最终得到的结果(似乎有效),但这是一团混乱: function hasMemory() { if( typeof memory === 'undefined') return; if( typeof memory[indexGroup

我有一个数组,看起来有点像
内存[indexGroup][indexItem]
。我如何检查它是否有效,换句话说,当使用
console.log
并获取一个值时,它是否有效,而不是
null
未定义
或其他非值。空、
0
和false有效。这些不会给出错误

这就是我最终得到的结果(似乎有效),但这是一团混乱:

function hasMemory() {
    if( typeof memory === 'undefined') return;
    if( typeof memory[indexGroup] === 'undefined') return;
    if( memory[indexGroup] === null ) return;
    if( typeof memory[indexGroup][indexItem] === 'undefined') return;
    if( memory[indexGroup][indexItem] === null) return;
    if( memory[indexGroup][indexItem] !== true ) return;
    return true;
}
情节
  • 未设置内存
  • 未设置内存[indexGroup]
  • 未设置内存[indexGroup][indexItem]
然后它应该只返回,但是如果完整的多维数组有效,它应该返回true

是否有更短/更好/更安全的方法来检查此问题

function hasMemory() {
return memory && memory[indexGroup] && memory[indexGroup][indexItem]
}
处理内存[indexGroup][indexItem]为0或false的情况,基于

undefined == null
null == undefined
您可以添加到条件
内存[indexGroup][indexItem]=空

处理内存[indexGroup][indexItem]为0或false的情况,基于

undefined == null
null == undefined

您可以添加到条件
内存[indexGroup][indexItem]=空

通过对
执行松散检查,您可以同时检查
未定义
,但对
0
无效

var u=未定义;
var n=null;
var z=0;
var f=假;
console.log(u==null);
console.log(n==null);
console.log(z==null);

console.log(f==null)
通过对
null
执行松散检查,您可以同时检查
null
undefined
,但不适用于
0
false

var u=未定义;
var n=null;
var z=0;
var f=假;
console.log(u==null);
console.log(n==null);
console.log(z==null);

console.log(f==null)
函数hasMemory(){return Boolean(memory&&memory[indexGroup]&&memory[indexGroup][indexItem])
@Thomas如果这样做有效,也许可以添加它作为答案?:)<代码>函数hasMemory(){return Boolean(memory&&memory[indexGroup]&&memory[indexGroup][indexItem])@Thomas如果这有效,可能会将其添加为答案?:)所以它会检查这些值是否。。。什么?有效值?这将检查
未定义
0
空字符串
。因此,如果您需要接受除
undefined/null
之外的其他内容,则逻辑将崩溃。这不适用于
内存[indexGroup][indexItem]
0
false
的情况。此外,没有理由返回
true
false
。它在功能上等同于执行
return(true)?true:false
。因此它会检查这些值是否。。。什么?有效值?这将检查
未定义
0
空字符串
。因此,如果您需要接受除
undefined/null
之外的其他内容,则逻辑将崩溃。这不适用于
内存[indexGroup][indexItem]
0
false
的情况。此外,没有理由返回
true
false
。它在功能上等同于执行
return(true)?真:假