JavaScript判斷陣列還是物件
判斷一個變數的型別,一般使用typeof就可以實現,但是當檢測一個變數是Array和Object型別的時候就不好用了,因為無論是陣列還是Object物件返回值都是object,例如:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var theObject={webName:"螞蟻部落",address:"青島市南區"}; var theArray=["螞蟻部落","青島市南區"]; console.log(typeof theObject);//輸出object console.log(typeof theArray);//輸出object
以上程式碼並不能夠檢測是陣列還是物件,所以還得想別的辦法。
一.通過length屬性判斷:
在通常情況下陣列具有length屬性,而物件沒有,於是就可以通過此屬性判斷一個變數是陣列還是物件。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var theObject={webName:"螞蟻部落",address:"青島市南區"}; var theArray=["螞蟻部落","青島市南區"]; var whichType=function(bianliang){ if(typeof bianliang=='object'){ if(typeof bianliang.length=='number'){ return "變數是陣列"; } else{ return '變數是物件'; } } else{ return "你傳入了個什麼東西"; } }; console.log(whichType(theObject));//變數是物件 console.log(whichType(theArray));//變數是陣列
以上程式碼可以判斷變數的型別,但是並不完善,因為object物件中完全可以自定義一個length屬性。所以程式碼還是有缺陷的,在某些情況下以上程式碼並不靈光。
二.使用instanceof方式:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var theObject={webName:"螞蟻部落",address:"青島市南區"}; var theArray=["螞蟻部落","青島市南區"]; console.log(theArray instanceof Array);//true console.log(theObject instanceof Array);//false
以上程式碼可以判斷出兩者的型別,下面再看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var theObject={webName:"螞蟻部落",address:"青島市南區"}; var theArray=["螞蟻部落","青島市南區"]; console.log(theArray instanceof Object);//true console.log(theObject instanceof Object);//true
因為陣列也屬於Object,所以都會返回true,所以我們檢測的時候要首先檢測陣列。
三.一個網路上常用的轉載方式:
[JavaScript] 純文字檢視 複製程式碼function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }
這個方式比較簡略經典,建議使用。
相關文章
- js如何判斷物件的屬性值是物件還是陣列JS物件陣列
- JavaScript 判斷是否是陣列JavaScript陣列
- js如何判斷一個變數是陣列還是其他物件JS變數陣列物件
- JavaScript 判斷陣列或者物件是否為空JavaScript陣列物件
- javascript如何判斷一個物件是不是陣列JavaScript物件陣列
- js:判斷物件或陣列JS物件陣列
- javascript如何判斷Object是空物件JavaScriptObject物件
- JavaScript判斷陣列是否包含指定元素JavaScript陣列
- js基礎-12-判斷陣列和判斷物件的方法JS陣列物件
- 判斷某個陣列在不在物件裡陣列物件
- JS型別判斷、物件克隆、陣列克隆JS型別物件陣列
- js判斷一個物件是否為陣列JS物件陣列
- javascript陣列如何判斷是否有重複的陣列項JavaScript陣列
- Javascript判斷空物件JavaScript物件
- javascript判斷變數是否是陣列型別程式碼例項JavaScript變數陣列型別
- 判斷是否是陣列的幾種方法陣列
- JavaScript判斷ios還是android系統JavaScriptiOSAndroid
- 判斷是否為陣列的 JavaScript 方法總結陣列JavaScript
- Javascript中判斷陣列的正確姿勢JavaScript陣列
- Javascript 物件 – 陣列物件JavaScript物件陣列
- js如何判斷一個變數是物件還是nullJS變數物件Null
- Javascript 判斷物件是否相等JavaScript物件
- 原生js 判斷變數是一個陣列JS變數陣列
- Javascript-判斷是否為陣列的5種方法JavaScript陣列
- js資料型別判斷和陣列判斷JS資料型別陣列
- js如何判斷一個引數是否是陣列JS陣列
- 如何判斷Javascript物件是否存在JavaScript物件
- 判斷javaScript變數是Ojbect型別還是Array型別JavaScript變數型別
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- 如何判斷 JavaScript 物件是否為空?JavaScript物件
- js,javascript陣列物件的父級物件 – 子集物件(陣列物件相減)JSJavaScript陣列物件
- 判斷一個陣列是否排好序陣列
- 深入理解JVM(③)判斷物件是否還健在?JVM物件
- JavaScript 之 物件/JSON/陣列JavaScript物件JSON陣列
- Javascript中的陣列物件排序JavaScript陣列物件排序
- javascript模擬實現in_array()判斷指定元素是否在陣列中JavaScript陣列
- javascript判斷物件是否為空物件程式碼例項JavaScript物件
- 我想了解更多判斷陣列的方式陣列