从对象中选取给定属性的值放入数组中

Mik*_*cer 1 javascript arrays object lodash

我有一个对象:

person = { 
    birth_year: 1970, 
    first_name: "John", 
    last_name: "Doe", 
    occupation: "Doctor", 
    city: "Boston",
    married: true 
}
Run Code Online (Sandbox Code Playgroud)

我有一个按给定顺序排列的键名称数组:

keys = ["occupation", "last_name", "city"]
Run Code Online (Sandbox Code Playgroud)

我想得到这个数组:

["Doctor", "Doe", "Boston"]
Run Code Online (Sandbox Code Playgroud)

重要的是,答案应该保证顺序(JavaScript 不保证对象迭代的顺序)。

我认为 lodash/underscore 中可能有一些实用函数可以简单地完成此操作,但无法弄清楚。

Nen*_*car 5

与Lodash你可以使用pick和values

var o = {
  birth_year: 1970,
  first_name: "John",
  last_name: "Doe",
  occupation: "Doctor",
  city: "Boston",
  married: true
}
var keys = ["occupation", "last_name", "city"];

var result = _.values(_.pick(o, keys));
console.log(result)
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)