下划线:如何 return 按数组键的所有值

Underscore: How to return all values by array with keys

我有一个包含很多 key : value 的大对象,并且我有一个包含来自该对象的一些键的数组。

如何通过下划线 return 这个 keys(array) 的值?

我尝试了一些这样的,但它很牛**

_.find(objectwithkeysandvalues ,  function(value){
    return _.intersection(value,arraywithekeys)
});

此任务不需要 Underscore。相反,您可以使用 map 函数创建一个新数组,其中包含由旧数组中的键指定的值:

var myValues = keys.map(function (key) {
    return myObject[key]
});

您只需要 map 每个 value 从您的键数组到 yourBigObject[value]

在下划线中,它看起来像这样:

var keys = [ ... ]; // Keys from your big object
var obj = { ... }; // Your big object
var values = _.map(keys, function(value, index) {
    return obj[value];
});

参见 this fiddle 进行实验。

这是一个使用即将推出的 EcmaScript 7 Array Comprehensions 的解决方案,今天可通过 Babel.js 获得。

试一试:Array Comprehensions Example.

ES7:

var obj = {
  "key1": 1,
  "key2": 2,
  "key3": 3
}

var arr = ["key1"];

var values = [for(key of arr) obj[key]];

console.log(values);