Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从一个令人兴奋的节点重新构建json_Javascript_Arrays_Json_Node.js - Fatal编程技术网

Javascript 从一个令人兴奋的节点重新构建json

Javascript 从一个令人兴奋的节点重新构建json,javascript,arrays,json,node.js,Javascript,Arrays,Json,Node.js,我有一个当前的JSON,看起来像这样 { "_id": "5371f7171b27d11418bd9b46", "name": "a", "length": 14 }, { "_id": "5371f7171b27d1143bd9b46", "name": "ab", "length": 3 } 我想让它看起来像这个 5371f7171b27d1141

我有一个当前的JSON,看起来像这样

      {
        "_id": "5371f7171b27d11418bd9b46",
        "name": "a",
        "length": 14
      },
      {
        "_id": "5371f7171b27d1143bd9b46",
        "name": "ab",
        "length": 3
      }
我想让它看起来像这个

5371f7171b27d11418bd9b46: {
    name: "a",
    length: 14,
    toc: [] // in the future it will be in the json I get.
},
5371f7171b27d1143bd9b46: {
    name: "ab",
    length: 3,
    toc: []
}
这就是我试过的

var arrenged = {};
_.forEach(result, function(item) {
    arrenged[item._id] = arrenged[item._id] || {};
    arrenged[item._id][item.name] = arrenged[item._id][item.name] || {};
    arrenged[item._id][item.name].push(item);
    arrenged[item._id]['direction'] = 'rtl';
    arrenged[item._id]['toc'] = "[]";
});
res.jsonp(arrenged);
但我得到了TypeError:Object#没有“push”方法,不确定我做错了什么。 谢谢

我们可以做:

var newObject = {};
for (var i = 0; i < data.length; i++) { //data is your current array of objects
    var id = data[i]._id;
    newObject[id] = {};
    newObject[id].name = data[i].name;
    newObject[id].length = data[i].length;
    newObject[id].toc = [];
}
var newObject={};
对于(var i=0;i

小提琴手:

好吧,我试过你这样做,但我没能把它弄出来want@greW--删除此行:
arrenged[id]=id@growth——我发布了一个演示小提琴。嗯,不是我得到的:无法设置的属性“name”undefined@greW--我更新了答案,我忘记了一行-
newObject[id]={}