怎樣判斷數組類型

整理了四種判斷數組類型方法:javascript

  方法一: instance of方法java

//聲明變量
var arr = new Array();
var newArr = [];
var str = "";
var nul = null;
var und = undefined;
var obj = new Object();
var newObj = {}; 
//聲明函數
function isArray(obj){
    return obj instanceof Array ? true : false;
 }
//調用函數,並獲取結果
var result = isArray(arr);
//打印結果
 console.log("result:",result);        //true

  方法二:構造函數(constructor)方法數組

//聲明函數
function isArray(obj) {
   var result = obj.constructor == Array ? true : false;
    return result;
}
//測試結果
console.log(isArray([]));  
console.log(isArray({})); 
console.log(isArray(new Array())); 
console.log(isArray(new Object())); 
console.log(isArray("string")); 
console.log(isArray(123)); 
console.log(isArray(true)); 

  方法三:call方法函數

  解釋:測試

    call():函數實例的call方法,能夠指定函數內部this的指向(即函數執行時所在的做用域),而後在所指定的做用域中,調用該函數。
  
function isArray(obj) {
    return Object.prototype.toString.call(obj);
}
var arr=[2,5,6,8];
var obj={name:'zhangsan',age:25};
var fn = function () {}
console.log(isArray(arr));      //[object Array]
console.log(isArray(obj));      //[object Object]
console.log(isArray(fn));       //[object function]

  方法四:isArray方法this

// ES5定義了Array.isArray:
var arr = isArray([]);      //true
// var arr = isArray({});      //false
console.log("arr:", arr);
function isArray(obj) {
    var result = Array.isArray(obj) ? true : false;
     return result;
}
相關文章
相關標籤/搜索