如何检查特定阵列是否存在,如果不存在则会创建?
答案 0 :(得分:72)
如果要检查数组x是否存在并创建它,如果不存在,则可以执行
x = ( typeof x != 'undefined' && x instanceof Array ) ? x : []
答案 1 :(得分:57)
var arr = arr || [];
答案 2 :(得分:22)
const list = Array.isArray(x) ? x : [x];
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
或者如果x
可以是一个数组,并且您想确保它是一个数组:
const list = [].concat(x);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
答案 3 :(得分:12)
您可以使用typeof
operator测试 undefined 和instanceof
operator来测试它是 Array 的实例:
if (typeof arr == "undefined" || !(arr instanceof Array)) {
var arr = [];
}
答案 4 :(得分:8)
如果要检查对象是否已经是数组,要避免在多框架DOM环境中工作时instanceof
运算符的well known issues,可以使用Object.prototype.toString
方法:
arr = Object.prototype.toString.call(arr) == "[object Array]" ? arr : [];
答案 5 :(得分:0)
<script type="text/javascript">
array1 = new Array('apple','mango','banana');
var storearray1 =array1;
if (window[storearray1] && window[storearray1] instanceof Array) {
alert("exist!");
} else {
alert('not find: storearray1 = ' + typeof storearray1)
}
</script>
答案 6 :(得分:-5)
如果您正在谈论浏览器环境,那么所有全局变量都是窗口对象的成员。所以要检查:
if (window.somearray !== undefined) {
somearray = [];
}