实现效果
实现原生 JavaScript 中的Array.isArray()
方法,使用如下:
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false
console.log(Array.isArray(123)); // false
console.log(Array.isArray('123')); // false
实现过程
通过Object.prototype.toString.call()
,获取数据类型:
console.log(Object.prototype.toString.call('123')); // [object String]
console.log(Object.prototype.toString.call([])); // [object Array]
console.log(Object.prototype.toString.call({})); // [object Object]
console.log(Object.prototype.toString.call(/123/)); // [object RegExp]
console.log(Object.prototype.toString.call(123)); // [object Number]
console.log(Object.prototype.toString.call(new Date())); // [object Date]
所以,可以通过Object.prototype.toString.call()
得到数据类型,判断是否为[object Array]
即可。
在Array
对象中添加自己的方法myIsArray()
:
Array.myIsArray = function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
验证
console.log(Array.myIsArray([])); // true
console.log(Array.myIsArray({})); // false
console.log(Array.myIsArray(123)); // false
console.log(Array.myIsArray('123')); // false
完成!