[英]How to get only the values in an object which are defined by an array of keys?
I have a simple object with several keys and values: 我有一个带有几个键和值的简单对象:
var obj = {SKA: 267, SKB: 30, SKC: 273, SKD: 900, SKE: 27, SKF: 3}
I also have a array with some keys: 我也有一些键的数组:
var keysArray = ["SKB", "SKF"]
I know that I can get all values by using Object.values(obj)
. 我知道我可以使用
Object.values(obj)
获得所有值。 However I only need the values of the keys which are defined in the keysArray
. 但是我只需要在
keysArray
中定义的键的值。 So, is there a simple way to get only the values of these keys and save them in a new array? 因此,是否有一种简单的方法来仅获取这些键的值并将其保存在新数组中?
I need the following result: 我需要以下结果:
var resultArray = [30, 3]
Many thanks. 非常感谢。
keysArray.map(key => obj[key])
var resultArray =[];
keysArray.forEach(function(key){
if(obj[key]){
resultArray.push(obj[key]);
}
});
I will recommend to use loop, like forEach
on the keysArray
instead of map
on keysArray
. 我会建议使用循环一样
forEach
在keysArray
而不是map
上keysArray
。 The reason for this is because map
do not work for this: 这样做的原因是因为
map
对此不起作用:
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);
Here is why map
do not fit with what you have asked: 这就是为什么
map
不符合您的要求的原因:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.