js--數組轉對象和對象轉數組


題目如下:將下列對象轉成數組

var scoreObject = {
    "Tony": {
        "Math": 95,
        "English": 79,
        "Music": 68
    }, 
    "Simon": {
        "Math": 100,
        "English": 95,
        "Music": 98
    }, 
    "Annie": {
        "Math": 54,
        "English": 65,
        "Music": 88
    }
}

 

轉成格式:

var scoreArray = [
    ["Tony", 95, 79, 68],
    ……
];

代碼如下:

var arr6=[];
for(var i in scoreObject){ //第一次使用這種for循環,這里i並不是i=1,i=2,i=3....這種數字,而是i=Tony,i=Simon,i=Annie
    var arr7=[];
    arr7.push(i);
    for(var j in scoreObject[i]){ //同理這里的for循環里的 j 也不是 1,2,3.。。
        arr7.push(scoreObject[i][j]);
    }
    arr6.push(arr7);
}
console.log(arr6);

*************************************************************************************************************

數組轉對象:

 1 var menuArr = [
 2     [1, "Area1", -1],
 3     [2, "Area2", -1],
 4     [3, "Area1-1", 1],
 5     [4, "Area1-2", 1],
 6     [5, "Area2-1", 2],
 7     [6, "Area2-2", 2],
 8     [7, "Area1-2-3", 4],
 9     [8, "Area2-2-1", 6],
10 ];

轉化格式:

 1 var menuObject = {
 2     "1": {
 3         name: "Area1",
 4         subMenu: {
 5             "3": {
 6                 name: "Area1-1"
 7             },
 8             "4": {
 9                 name: "Area1-2",
10                 subMenu: {
11                     "7": {
12                         name: "Area1-2-3"
13                     }
14                 }
15             }
16         }
17     }
18 
19     ……
20 
21 }

代碼(借鑒網上的):

function arryToObject(arry){
    var menuObject ={}//創建一個空對象
    for(var i=0,len=arry.length;i<len;i++){
        var arr1= [];
        // console.log(arry[i]);
        arr1=arry[i];
        // console.log(arry1);
        if(arr1[2]== -1){
         
            menuObject[arr1[0]]={
                "name":arr1[1],
                "subMenu":{ }
            }
        }
        
        if(arr1[2]== 1){
            console.log(arr1[2]);
            menuObject["1"]["subMenu"][arr1[0]]={
                "name":arr1[2],
                "subMenu":{}
            }
        }
        if(arr1[2]== 2){
            menuObject["2"]["subMenu"][arr1[0]]={
                "name":arr1[2],
                "subMenu":{}
            }
        }
        if(arr1[2]== "4"){
            menuObject["1"]["subMenu"]["4"]["subMenu"][arr1[0]]={
                "name":arr1[2],
                "subMenu":{}
            }
        }
        if(arr1[2]==6){
            menuObject["2"]["subMenu"]["6"]["subMenu"][arr1[0]]={
                "name":arr1[2],
                "subMenu":{}
            }
        }
    }
    return menuObject;
}
console.log(arryToObject(menuArr));

*******************************************************************************

總結:for循環的新寫法, 要注意里面變量的值


免責聲明!

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



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