Вам нужно go наоборот - перебрать все ключи объекта, а если его нет в arr
, удалить его:
var obj ={
"id": "1",
"cn": "TH",
"curr": "THB",
"10-02-2020": "10,11",
"12-01-2019": "2,5"
}
var result = filterkeys(obj,["id","cn","curr"]);
function filterkeys(obj,arr){
for (const key of Object.keys(obj)) {
if (!arr.includes(key)) {
delete obj[key];
}
}
return obj;
}
console.log(result);
Или без delete
(возможно, лучше по возможности избегать delete
- это хорошо, чтобы избежать мутации) - сопоставьте массив ключей для создания нового объекта с помощью Object.fromEntries
:
var obj ={
"id": "1",
"cn": "TH",
"curr": "THB",
"10-02-2020": "10,11",
"12-01-2019": "2,5"
};
const filterkeys = (obj,arr) => Object.fromEntries(
arr.map(key => [key, obj[key]])
);
var result = filterkeys(obj,["id","cn","curr"]);
console.log(result);