Javascript 数据转换

标签 javascript lodash

输入:

     {
    "8": [{
        "a": true,
        "b": {
            "xyz": 1
        }
    }, {
        "a": false,
        "b": {
            "xyz": 2
        }
    }],
    "13": [{
        "b": {
            "xyz": 4
        }
    }]
 }

输出:

    {
    "8": [{
        "b": {
            "xyz": 2
        }
    }]
 }

如何使用 javascript 和 lodash 库删除每个键的第一个元素并返回同一对象的几个键?

最佳答案

没有 loadash 做 Array#shiftArray#foreach

  1. 首先使用 Object.keys 将 obj 转换为数组
  2. 然后循环值。并使用 Array#shift 删除数组的第一个索引
  3. 然后应用数组长度为0的条件从主对象中移除键值对

var obj = { "8": [{ "a": true, "b": { "xyz": 1 } }, { "a": false, "b": { "xyz": 2 } }], "13": [{ "b": { "xyz": 4 } }] };
Object.keys(obj).forEach(a => {
  obj[a].shift()
  obj[a] = obj[a];
  if(obj[a].length == 0)
   delete obj[a];
});
console.log(obj)

关于Javascript 数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285775/

相关文章:

javascript - 事件仅在单击两次时激活

javascript - jQuery 动态添加表单字段、删除表单字段

javascript - 与 mysql 连接的实时图表问题

javascript - 解析 XML 文件不起作用

javascript - Firebase 通过键从查找中删除

javascript - 使用 lodash 或 underscore.js 操作 javascript 中的对象数组

javascript - Lodash 的差异在于行为不符合预期

javascript - 使用 lodash 过滤包含字符串的对象数组

javascript - 如何使用 ES6 JS/Lodash 选择数组中的特定项并形成新数组

javascript - 使用下划线获取所有键和每个键的唯一值列表