使用特定键创建对象数组,然后从对象中删除该键

时间:2016-10-27 18:01:13

标签: lodash

我使用lodash从特定键创建对象数组,然后从其对象中删除此给定键。

我有这个

var cars = [{
        "itemID": "-KUsw42xU-S1qA-y3TiI", // use this as key
        "name": "Car One",
        "qtd": "1"
    },
    {
        "itemID": "-KUsw42xU-r1qA-s3TbI",
        "name": "Car Two",
        "qtd": "2"
    }
]

试图得到这个:

var cars = {
    "-KUsw42xU-S1qA-y3TiI": {
        "name": "Car One",
        "qtd": "1"
    },
    "-KUsw42xU-r1qA-s3TbI": {
        "name": "Car Two",
        "qtd": "1"
    }
}

我尝试过这种方法,但我没有成功。

 _.chain(a)
  .keyBy('itemID')
  .omit(['itemID'])
  .value();

1 个答案:

答案 0 :(得分:8)

你快到了。要省略每个对象的itemID,您需要映射值(使用mapValues):

var result = _.chain(cars)
  .keyBy('itemID')
  .mapValues( v => _.omit(v, 'itemID'))
  .value();