怎麼判斷一個數組是數組呢?
其實這個也是一個常考的題目。在面試的過程中,更是一個高頻的面試題
1、數組方法 isArray()
Array.isArray(variable);
這是js的一個方法,專門用來測試對象是否是Array類型。
舉例:
由例子可知,此方法是即爲便利的,直接就能對數據的類型進行判斷。
2、原型 prototype + toString + call
Object.prototype.toString.call(variable).indexOf(‘Array’) !== -1;
Object.prototype.toString.call() 使用了 toString方法,所以返回值是一個字符串
var arr = [1,2]
var obj = {a:1}
Object.prototype.toString.call(arr) //"[object Array]"
Object.prototype.toString.call(obj) //"[object Object]"
所以要使用 indexOf() 來進行二次判斷,看返回值有沒有 Array
這個關鍵字
Object.prototype.toString.call(arr).indexOf('Array') // 8
Object.prototype.toString.call(arr).indexOf('Object') // -1
Object.prototype.toString.call(arr).indexOf('Array') !==-1 //true
Object.prototype.toString.call(arr).indexOf('Object') !==-1 //false
這個方法比之 第一種,稍顯麻煩一些,但是也是可以精確判斷是否爲數組