js 对象-数组相互转换

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();
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值