javascript - 在javascript中删除多个对象键值
问题描述
我想知道如何删除对象 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);
推荐阅读
- gradle - 在命令提示符下运行 flutter run 命令时出错:[致命错误] aapt2-3.5.0-5435860.pom:2:1: Content is not allowed in prolog
- amazon-web-services - Spark AWS Glue UI - 错误:无法找到或加载主类 $SPARK_HISTORY_OPTS - Windows Docker
- tensorflow - 如何将 .png 文件转换为 TFrecord tensorflow 格式?
- sql - 偏移和获取下一条记录发生在多个页面中
- gnuplot - 在gnuplot中拟合曲线:重复拟合给出不同的结果
- java - 搜索适配器 - 空对象引用上的“java.lang.Object[] java.util.Collection.toArray()”
- java - 当用户在android应用程序中更改另一个开关时如何更改一个开关的状态
- php - 未定义的函数 wptexturize()
- reactjs - 如何停止拖动以前日期的事件,但我还想显示过去的事件?
- sql - SQL组合多个表然后组合重复