漆黑天使复活 2021-08-07 00:03 采纳率: 44.4%
浏览 119
已结题

js 字典按照规则转为为字典序列

有个字典,键值对是3的倍数,3N对键值对,例如下

var dic={
     brand_1=11,
    name_1=11,
     model_1=11,
     brand_2=22,
     name_2=22,
     model_2=22,
     brand_3=33,
     name_3=33,
     model_3=33
}

要转换成

var diclist=[
{ brand:11,name:11,model:11},
{ brand:22,name:22,model:22},
{ brand:33,name:33,model:33},
]

当然,每一组的{ brand:xx,name:xx,model:xx}, 要跟原来字典中key的最后那个数字对起来

有啥好的思路不?

  • 写回答

5条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2021-08-07 04:50
    关注

    如果对你有帮助的话,希望能够采纳支持一下!!!

     <script>
            var dic = {
                brand_1: 11,
                name_1: 11,
                model_1: 11,
                brand_2: 22,
                name_2: 22,
                model_2: 22,
                brand_3: 33,
                name_3: 33,
                model_3: 33
            };
            //转换函数
            function func(dic) {
                let res = [];
                //计算字典长度
                let size = Object.keys(dic).length;
                //初始化元素个数,如果字典长度为3N,那么初始化元素个数为N
                for (let i = 0; i < size / 3; i++) {
                    res.push({});
                }
                //初始化元素索引值
                let i = 0;
                //累加指针
                let j = 0;
                //遍历字典
                for (let key in dic) {
                    //获取字典的key值
                    let k = key.substr(0, key.indexOf("_"));
                    //赋值操作
                    res[i][k] = dic[key];
                    //累加+1
                    j++;
                    //每循环到3的倍数的时候,索引值自增1
                    if (j % 3 == 0) i++;
                }
                //返回结果
                return res;
            }
            //打印输出结果
            console.log(func(dic))
        </script>
    

    运行结果:

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看