javascript:检查数组是否存在,如果没有创build它

我如何检查一个特定的数组是否存在,如果没有,它会被创build?

如果你想检查一个数组x是否存在,并创build它,如果没有,你可以这样做

x = ( typeof x != 'undefined' && x instanceof Array ) ? x : [] 
 var arr = arr || []; 

您可以使用typeof运算符来testingundefined,并使用instanceof运算符来testing它是否是Array的一个实例:

 if (typeof arr == "undefined" || !(arr instanceof Array)) { var arr = []; } 
 let list = Array.isArray(x) ? x : []; 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

或者,如果var x 可以是一个数组,并且你想确保它是一个:

 let list = [].concat(x); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

如果您想检查对象是否已经是一个Array,为了避免在多框架DOM环境中工作时众所周知的instanceof操作符问题 ,可以使用Object.prototype.toString方法:

 arr = Object.prototype.toString.call(arr) == "[object Array]" ? arr : []; 

如果你在谈论浏览器环境,那么所有的全局variables都是窗口对象的成员。 所以要检查:

 if (window.somearray !== undefined) { somearray = []; }