如何将对象的值作为数组,给定键列表?

RaR*_*RaR 1 javascript performance underscore.js lodash

我的对象如下,

obj = {
  '1': {val: 1},
  '2': {val: 2},
  '3': {val: 3},
  '4': {val: 4},
  ...
}
Run Code Online (Sandbox Code Playgroud)

给定键列表(作为Array),我想获得所有值列表(作为Array).

例如,

如果键列表是['3', '4'],输出将是[{val: 3}, {val: 4}]

我尝试如下

_.values(_.pick(obj, ['3', '4']))
Run Code Online (Sandbox Code Playgroud)

这可以工作,但它会进行两次迭代.有没有办法在一次迭代中实现相同的目标.提前致谢.

Ori*_*ori 5

要从Lodash的选定对象props中创建值数组,请使用_.at():

var obj = {
  '1': {val: 1},
  '2': {val: 2},
  '3': {val: 3},
  '4': {val: 4}
};

var result = _.at(obj, ['3', '4']);

console.log(result);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)