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 = []; }