我想知道如何删除对象javascript中的多个键。 如何删除 obj 中的日期键。
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){
arr.forEach(function(key) {
delete !obj[key];
});
return obj;
}
预期输出:
{
"id": "1",
"cn": "TH",
"curr": "THB"
}
最佳答案
您需要采取相反的方法 - 迭代对象的所有键,如果它不在 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);
关于javascript - 在javascript中删除多个对象键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60482408/