javascript - 根据另一个数组中的键更新数组数据
问题描述
我想根据另一个数组中存在的键更新数组数据,如果键不存在,则输出值为 0 的数据以及相应的键
let data = [{
ORIGEN: "WB716594",
"Gestor Ericsson OSS": 1
}, {
ORIGEN: "MM-LORC-AGUI-L3-11_760525",
"MM-LORC-AGUI-L3-11_760525": 1
}];
let keyValue = ["Gestor Ericsson OSS",
"MM-LORC-AGUI-L3-11_760525",
"Gestor HUA U2KVIA",
"5620SAM"
]
此处的“Gestor HUA U2KVIA”和“5620SAM”不存在于数据中,因此应附加如下
Output = [{ORIGEN: "WB716594", Gestor Ericsson OSS: 1, "MM-LORC-AGUI-L3-11_760525":0,Gestor HUA U2KVIA:0,5620SAM:0},
{ORIGEN: "MM-LORC-AGUI-L3-11_760525", MM-LORC-AGUI-L3-11_760525: 1,Gestor Ericsson OSS: 0,Gestor HUA U2KVIA:0,5620SAM:0}
]
解决方案
您可以创建一个以keyValue
数组项为键和0
值的对象。然后遍历data
数组 usingmap
和 useObject.assign
以获取每个项目的合并对象:
const data = [{ORIGEN:"WB716594","Gestor Ericsson OSS":1},{ORIGEN:"MM-LORC-AGUI-L3-11_760525","MM-LORC-AGUI-L3-11_760525":1}],
keyValue = ["Gestor Ericsson OSS","MM-LORC-AGUI-L3-11_760525","Gestor HUA U2KVIA","5620SAM"]
const defaultObj = Object.assign({}, ...keyValue.map(key => ({ [key]: 0 })));
const output = data.map(obj => Object.assign({}, defaultObj, obj));
console.log(output)
推荐阅读
- python - 在 Kubeflow 管道中共享秘密
- python - 使用 os.startfile() 时程序执行完成后 Python 文件关闭
- regex - 如何使用正则表达式正确修剪多组字符序列?
- vue.js - 如何防止使用 webpack 下载未使用的节点模块块?
- html - 为什么我的左右浮动不起作用
- java - HttpServletRequest request.getSession().setAttribute 不起作用
- statistics - 时间序列数据的方差分析
- java - 如何在 switch 语句中对案例进行分组?
- c# - 有没有办法让控制台显示具有最高值的列表?
- swift - Appkit:如何在本地文件夹上执行 NSMetadataQuery