- JS 陣列轉物件 物件轉陣列 物件陣列互相轉換 陣列物件互相轉換
-
宣告一個函式,arr_obj ,里面接收一個引數,引數型別只接受物件或者陣列
-
如果沒有傳遞任何引數 或者 傳遞的引數型別不符合要求,就會拋出錯誤例外
-
無論是沒有傳遞任何引數 或者 傳遞的引數型別不符合要求,拋出例外 并 列印出傳遞的引數
-
如果要查看當前函式的物件,請通過 new 的方式實體化函式 arr_obj ,自行在控制臺列印輸出
-
呼叫此函式,傳入陣列會自動轉換為物件;傳入物件會自動轉換為陣列
-
針對嵌套深層次比較深的物件或者陣列
// 陣列轉物件、物件轉陣列 function arr_obj(query) { // 如果未傳遞引數,就賦值為 undefined this.query = query || undefined; this.params = this.query; // 默認物件 var defaultObj = {}; // 默認陣列 var defaultArr = []; // 陣列轉物件 this.arrToObj = function(arr) { var obj = {} for (var i = 0; i < arr.length; i++) { // 陣列轉為物件,物件的鍵=陣列值, 物件的值=陣列值 obj[arr[i]] = arr[i]; // 如果是陣列,就再次呼叫自身 (this.arrToObj),遞回接著回圈 if (Object.prototype.toString.call(arr[i]) == "[object Array]") { var deepArray = this.arrToObj(arr[i]) continue; } else { defaultObj[arr[i]] = arr[i] } } this.params = defaultObj; }; // 物件轉陣列 this.objToArr = function(obj) { var arr = []; for (var i in obj) { arr.push(obj[i]); // 如果是物件,就再次呼叫自身 (this.ObjToObj),遞回接著回圈 if(Object.prototype.toString.call(obj[i]) == "[object Object]"){ var deepObject=this.objToArr(obj[i]); continue; }else{ defaultArr.push(obj[i]) } } this.params = defaultArr; }; if (Object.prototype.toString.call(this.query) == "[object Array]") { this.arrToObj(this.query); } else if (Object.prototype.toString.call(this.query) == "[object Object]") { this.objToArr(this.query); } else if (Object.prototype.toString.call(this.query) == "[object Undefined]") { console.error("沒有獲取到傳遞進來的引數", this.params); throw "沒有獲取到傳遞進來的引數" } else { console.error("錯誤的引數:", this.params, "錯誤的引數型別:", Object.prototype.toString.call(this.params)); throw "傳遞的引數只能是物件或者陣列型別" } return this.params; } // 呼叫 物件轉陣列 var obj = { a1:"a", b1:{ c1:"c",d1:"d" ,q1:{ q:"q",w:"w", }, }, e1:"e", f1:"f" }; // // 呼叫 陣列轉物件 var arr = ["a", ["c",["e"],"q"],"t"]; var asd1 = new arr_obj(arr); console.log(asd1); // 輸出 {a: "a", c: "c", e: "e", q: "q", t: "t"} // 呼叫 物件轉陣列 var asd2=new arr_obj(obj); console.log(asd2); // 輸出 ["a", "c", "d", "q", "w", "e", "f"]
可訪問此處進入原文 https://mp.weixin.qq.com/s/Ged8ZbUGy14qwPf7pcjCLQ
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/73784.html
標籤:JavaScript
上一篇:一窺 AJAX
