如何仅获取由键数组定义的对象中的值?

时间:2018-05-06 08:58:59

标签: javascript arrays object filter find

我有一个带有几个键和值的简单对象:

var obj = {SKA: 267, SKB: 30, SKC: 273, SKD: 900, SKE: 27, SKF: 3}

我还有一个带有一些键的数组:

var keysArray = ["SKB", "SKF"]

我知道我可以使用Object.values(obj)获取所有值。但是我只需要keysArray中定义的键值。那么,有一种简单的方法可以只获取这些键的值并将它们保存在一个新数组中吗?

我需要以下结果:

var resultArray = [30, 3]

非常感谢。

3 个答案:

答案 0 :(得分:3)

 keysArray.map(key => obj[key])

答案 1 :(得分:0)

<fo:block>
    Line 1 &#xA;   /// Not Working
    Line 2 &#xA;   /// Not Working
    Line 3 <br />  /// Not working
</fo:block> 

答案 2 :(得分:0)

我建议在forEach上使用循环,例如keysArray,而不是map上的keysArray。原因是因为map不起作用:

&#13;
&#13;
var obj = {SKA: 267, SKB: 30, SKC: 273, SKD: 900, SKE: 27, SKF: 3};
var keysArray = ["SKB", "SKF"];
var resultArray = [];

keysArray.forEach((key)=>{
  resultArray.push(obj[key]);
});
console.log(resultArray);
&#13;
&#13;
&#13;

以下是map与您提出的问题不符的原因:

&#13;
&#13;
var obj = {"SKA": 267, "SKB": 30, "SKC": 273, "SKD": 900, "SKE": 27, "SKF": 3};
var keysArray = ["SKB", "SKF"];

keysArray.map(key => obj[key]);
console.log(keysArray);
&#13;
&#13;
&#13;