使用Lodash从嵌套对象创建一个新数组

时间:2015-07-01 14:13:59

标签: lodash

这是我的数据

[
    {
        "properties": {
            "key": {
                "data": "companya data",
                "company": "Company A"
            }
        },
        "uniqueId" : 1
    },
    {
        "properties": {
            "key": {
                "data": "companyb data",
                "company": "Company B"
            }
        },
        "uniqueId" : 2
    },
    {
        "properties": {
            "key": {
                "data": "companyc data",
                "company": "Company C"
            }
        },
        "uniqueId" : 3
    }
]

我的typeahead指令需要的格式如下。我试图弄清楚我做的另一篇文章,但仍然无法使其发挥作用。最好的方法是将嵌套集合作为一个简单的对象集合。

[
    {
        "uniqueId" : 1,
        "data": "companya data"
    },
    {
        "uniqueId" : 2,
        "data": "companyb data"
    },
    {
        "uniqueId" : 3,
        "data": "companyc data"
    }
]

2 个答案:

答案 0 :(得分:0)

我明白了!

console.log(
    _(jsonData).map(function(obj) {
        return {
            d : obj.properties.key.data,
            id : obj.uniqueId
        }
    }) 
    .value()  
);

答案 1 :(得分:0)

只要您只执行一项操作,就不必使用lodash的链接功能。你可以简单地使用:

_.map(jsonData, function(obj) {
    return {
        d : obj.properties.key.data,
        id : obj.uniqueId
    }
});