js 驗證對象是否為數組


一、方法一:用到了原型

由於typeof檢測數組,只會顯示其為object,並不會詳細到告訴我們是否為array,所以我們可以自己寫個js用原型來檢測:

<script>
    /**
     *
     * @param obj 傳入需要驗證的對象
     * @returns {boolean}
     */
    function isArray(obj) {
        return Object.prototype.toString.call(obj) == "[object Array]";
    }
</script>

 

下面來創建幾個數組和非數組對象來驗證一下這個方法:

 /*數字索引的數組*/
    var arr =[1,2,3];
    console.log(typeof arr);//object
    console.log(isArray(arr));//true

    /*非數字索引的數組*/
    var newArr = [];
    newArr['a'] = "sss";
    newArr['b'] = 88;

    console.log(typeof newArr);//object
    console.log(isArray(newArr));//true

    /*非數組的對象*/
    var dateObj = new Date();

    console.log(typeof dateObj);//object
    console.log(isArray(dateObj));//false

 

二、方法二:用instanceof Array

依舊用上面定義的2個數組和1個時間對象來測試

    //======用  instanceof Array 驗證
    console.log(arr instanceof Array);//true
    console.log(newArr instanceof Array);//true
    console.log(dateObj instanceof Array);//false

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM