下划线:如何使用键返回数组的所有值

时间:2015-07-26 20:08:04

标签: javascript underscore.js

我有很多key : value的大对象,我有一些带有来自这个对象的键的数组。

如何通过下划线返回此keys(array)的值?

我尝试这样的一些,但这是公牛**

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您需要从密钥数组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]; }); CodeDomProvider objCodeCompiler = CodeDomProvider.CreateProvider( "CSharp" );

在Underscore中,这将是这样的:

CodeDomProvider objCodeCompiler = new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider();

请参阅map进行试验。

答案 2 :(得分:0)

这是使用即将通过Babel.js提供的即将推出的EcmaScript 7阵列理解的解决方案。

试一试: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);