如何判断某一个值是数组
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 563
Author 回答者: shfshanyue
完美实现一个月下载量超过一个亿的包: isarray
const isArray = Array.isArray || list => ({}).toString.call(list) === '[object Array]'
Author 回答者: illumi520
a instanceof Array
Author 回答者: illumi520
const a = []; console.log(a.constructor == Array);//true
Author 回答者: lkzwc
arr.proto === Array.prototype
Author 回答者: wuzqZZZ
// 理论上这个足够用了,又简洁又有效
Array.isArray();
// 补充个评论里没有的
Object.prototype.toString.call([]).slice(8, -1) === "Array";
Author 回答者: sisipyhus
const a = []; console.log(a.constructor == Array);//true
constructor的值可以被修改 所以这种判断方式不太妥
Author 回答者: sisipyhus
完美实现一个月下载量超过一个亿的包: isarray
const isArray = Array.isArray || list => ({}).toString.call(list) === '[object Array]'
运算符|| 后面需要加上 ()将函数包裹 不然会报错
Author 回答者: DyCoder2015
const isArray = Array.isArray || list => ({}).toString.call(list) === ‘[object Array]’