js 物件-陣列相互轉換
阿新 • • 發佈:2019-02-04
js 物件-陣列相互轉換
題目:
script 指令碼程式碼
陣列轉物件
<script type="text/javascript">
function fun() {
var menuArr = [
[1, "Area1", -1],
[2, "Area2", -1],
[3, "Area1-1", 1],
[4, "Area1-2", 1],
[5, "Area2-1", 2],
[6, "Area2-2" , 2],
[7, "Area1-2-3", 4],
[8, "Area2-2-1", 6],
];
// var subArrToSubObj
// 轉換成 物件陣列
var subArrToSubObj = menuArr.map(function (arr, i) {
return {key: arr[0], obj: {name: arr[1]}, parentKey: arr[2]};
})
console.log(subArrToSubObj);
var menuObject = {};
var tempObjArr = subArrToSubObj;
var len = tempObjArr.length;
for (var i = len - 2; i >= 0; i--) {
for (var j = len - 1; j >= i; j--) {
if (tempObjArr[i].key == tempObjArr[j].parentKey) {
if (tempObjArr[i].obj["subMenu" ]) {
tempObjArr[i].obj["subMenu"][tempObjArr[j].key] = tempObjArr[j].obj;
} else {
tempObjArr[i].obj["subMenu"] = {};
tempObjArr[i].obj["subMenu"][tempObjArr[j].key] = tempObjArr[j].obj;
}
}
}
}
// 設定根目錄
for(var i in tempObjArr){
if(tempObjArr[i].parentKey==-1){
menuObject[tempObjArr[i].key]=tempObjArr[i].obj;
}
}
console.log(menuObject);
// console.log(tempObjArr);
}
fun();
</script>
物件轉陣列
function fun5() {
var scoreObject = {
"Tony": {
"Math": 95,
"English": 79,
"Music": 68
},
"Simon": {
"Math": 100,
"English": 95,
"Music": 98
},
"Annie": {
"Math": 54,
"English": 65,
"Music": 88
}
}
var arr= [];
for (var i in scoreObject){
arr.push(i,scoreObject[i].Math,scoreObject[i].English,scoreObject[i].Music);
}
console.log(arr);
}
fun5();