Просто переберите ключи объекта и посмотрите, существуют ли они в массиве, используя Array.prototype.includes
, и добавьте значения в объект результата
const array = ["foo", "bar", "foo2", "bar2"]
var obj = {foo:"string1", fue:"string2", bar:"string3"}
var result = {};
Object.keys(obj).forEach(key => {
if(array.includes(key)) {
result[key] = obj[key];
}
})
console.log(result)
Также, как указал @Jacob, было бы более эффективно, если бы вы l oop над массивом и выбирали ключи из объекта, если они существуют как ключи доступа от объекта - это операция O (1), тогда как проверка в массиве - операция O (n)
const array = ["foo", "bar", "foo2", "bar2"]
var obj = {foo:"string1", fue:"string2", bar:"string3"}
var result = {};
array.forEach(key => {
if(obj[key]) {
result[key] = obj[key];
}
})
console.log(result)