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

cal*_*res 3 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"
    }
]
Run Code Online (Sandbox Code Playgroud)

试图得到这个:

var cars = {
    "-KUsw42xU-S1qA-y3TiI": {
        "name": "Car One",
        "qtd": "1"
    },
    "-KUsw42xU-r1qA-s3TbI": {
        "name": "Car Two",
        "qtd": "1"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

 _.chain(a)
  .keyBy('itemID')
  .omit(['itemID'])
  .value();
Run Code Online (Sandbox Code Playgroud)

Gru*_*nny 8

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

var result = _.chain(cars)
  .keyBy('itemID')
  .mapValues( v => _.omit(v, 'itemID'))
  .value();
Run Code Online (Sandbox Code Playgroud)