Как получить только те значения в объекте, которые определены массивом ключей? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть простой объект с несколькими ключами и значениями:

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 голосов
/ 06 мая 2018
var resultArray =[];

keysArray.forEach(function(key){
    if(obj[key]){
        resultArray.push(obj[key]);
    }
});
0 голосов
/ 06 мая 2018

Я рекомендую использовать цикл, например forEach на keysArray вместо map на keysArray. Причина этого в том, что 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);

Вот почему 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);
0 голосов
/ 06 мая 2018
 keysArray.map(key => obj[key])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...