• JS里的居民们7-对象和数组转换


    编码

    学习通用的数据用不同的数据结构进行存储,以及相互的转换

    对象转为数组:

    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 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 menuObject = {
        "1": {
            name: "Area1",
            subMenu: {
                "3": {
                    name: "Area1-1"
                },
                "4": {
                    name: "Area1-2",
                    subMenu: {
                        "7": {
                            name: "Area1-2-3"
                        }
                    }
                }
            }
        }
    
        ……
    
    }

     1 <!DOCTYPE html>
     2 <html>
     3 
     4 <head>
     5     <meta charset="utf-8" />
     6     <title>JS里的居民们9-对象和数组转换</title>
     7 </head>
     8 
     9 <body>
    10     <script>
    11         //对象转数组
    12         var scoreObject = {
    13             "Tony": {
    14                 "Math": 95,
    15                 "English": 79,
    16                 "Music": 68
    17             },
    18             "Simon": {
    19                 "Math": 100,
    20                 "English": 95,
    21                 "Music": 98
    22             },
    23             "Annie": {
    24                 "Math": 54,
    25                 "English": 65,
    26                 "Music": 88
    27             }
    28         }
    29         var arr1 = [];
    30         for (var i in scoreObject) {
    31             var arr2 = [];
    32             arr2.push(i);
    33             for (var j in scoreObject[i]) {
    34                 arr2.push(scoreObject[i][j]);
    35             }
    36             arr1.push(arr2);
    37         }
    38         console.log(arr1);
    39         //数组转对象
    40         var menuArr = [
    41             [1, "Area1", -1],
    42             [2, "Area2", -1],
    43             [3, "Area1-1", 1],
    44             [4, "Area1-2", 1],
    45             [5, "Area2-1", 2],
    46             [6, "Area2-2", 2],
    47             [7, "Area1-2-3", 4],
    48             [8, "Area2-2-1", 6],
    49         ];
    50 
    51         var menuObject = {};
    52         menuArr.forEach((current, index) => {
    53             if (current[2] == -1) {
    54                 menuObject[current[0]] = {
    55                     "name": current[1],
    56                     "subMenu": {}
    57                 }
    58             }
    59             if (current[2] == 1) {
    60                 menuObject["1"]["subMenu"][current[0]] = {
    61                     "name": current[1],
    62                     "subMenu": {}
    63                 }
    64             }
    65             if (current[2] == 2) {
    66                 menuObject["2"]["subMenu"][current[0]] = {
    67                     "name": current[1],
    68                     "subMenu": {}
    69                 }
    70             }
    71             if (current[2] == 4) {
    72                 menuObject["1"]["subMenu"]["4"]["subMenu"][current[0]] = {
    73                     "name": current[1],
    74                     "subMenu": {}
    75                 }
    76             }
    77             if (current[2] == 6) {
    78                 menuObject["2"][ "subMenu"]["6"]["subMenu"][current[0]] = {
    79                     "name": current[1],
    80                     "subMenu": {}
    81                 }
    82             }
    83         })
    84         console.log(menuObject);
    85     </script>
    86 </body>
    87 
    88 </html>
     
  • 相关阅读:
    keras模型可视化问题记录(pydot-ng、graphviz)-windows10
    逻辑回归的 LogisticRegressionCV函数
    Google Proxy SwitchyOmega安装
    Windows defender 添加例外项——文件夹、软件等
    matlab坐标轴的一些属性
    matlab PLSR拟合
    使用tensorflow api生成one-hot标签数据
    keras model.compile 的使用
    python 图片拼接成固定行列
    python动态变量名
  • 原文地址:https://www.cnblogs.com/Joe-and-Joan/p/10079662.html
Copyright © 2020-2023  润新知