如果尚不存在该如何创建数组?换句话说,如何将变量默认为空数组?
Answers:
如果要检查是否存在数组x并创建(如果不存在),可以执行
x = ( typeof x != 'undefined' && x instanceof Array ) ? x : []
Array.isArray(x):stackoverflow.com/a/38670091/271442
if (Array.isArray(array) && array.length)您可以在这里找到更多的信息stackoverflow.com/a/24403771/364951
var arr = arr || [];
arr已经在相关范围内定义了,那为什么要打扰var ...呢?你可以做arr = arr || [];
var被吊起,因此它总是会变成[]?编辑:nvm,我错了:D
const list = Array.isArray(x) ? x : [x];
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
或者,如果x 可能是一个数组,而您想确保它是一个:
const list = [].concat(x);
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
x is not defined在这两种情况下都引发
x是可能为数组的变量。您定义。这只是示例代码...
如果要检查的对象已经是一个数组,避免了众所周知的问题的的instanceof多框DOM环境中工作时操作,您可以使用Object.prototype.toString方法:
arr = Object.prototype.toString.call(arr) == "[object Array]" ? arr : [];
arr未声明,ReferenceError将在作业的右侧抛出一个……
Array构造函数实例化的数组,则不会覆盖您-在跨框架编写脚本时可能会发生这种情况。