如何判断对象是否含有数组中的某项,如果没有该项则插入该项并赋值0
arr = ["viapadDlOpt", "viapadDlMin", "pthpadDlOpt", "cuOz"]
obj = {
viapadDlOpt:12,
viapadDlMin:13
}
res = {
viapadDlOpt:12,
viapadDlMin:13,
pthpadDlOpt:0,
cuOz:0
}
如何判断对象是否含有数组中的某项,如果没有该项则插入该项并赋值0
arr = ["viapadDlOpt", "viapadDlMin", "pthpadDlOpt", "cuOz"]
obj = {
viapadDlOpt:12,
viapadDlMin:13
}
res = {
viapadDlOpt:12,
viapadDlMin:13,
pthpadDlOpt:0,
cuOz:0
}
let obj = {
a:'this is a',
b:'this is b',
}
let arr = ['a','b','c','d'];
arr.forEach(item => obj[item] = item in obj ? obj[item] : 0)
console.log(obj)
const arr = ["viapadDlOpt", "viapadDlMin", "pthpadDlOpt", "cuOz"]
const obj = {
viapadDlOpt:12,
viapadDlMin:13
}
const res = arr.reduce((a,b) => ({[b]:0,...a}),obj)
如果只是检查一次可以用楼上的,如果检查多次可以用Object.assign
或者展开符。
const arr = ["viapadDlOpt", "viapadDlMin", "pthpadDlOpt", "cuOz"]
const emptyArr = {}
arr.forEach(item=>(emptyArr[item] = 0))
let obj = {
viapadDlOpt:12,
viapadDlMin:11
}
let res = {
viapadDlOpt:12,
viapadDlMin:13,
pthpadDlOpt:0,
cuOz:0
}
let newObj = Object.assign({},emptyArr,obj)
// newObj=>{viapadDlOpt: 12, viapadDlMin: 11, pthpadDlOpt: 0, cuOz: 0}
let newRes = {...emptyArr,...res}
// newRes=>{viapadDlOpt: 12, viapadDlMin: 13, pthpadDlOpt: 0, cuOz: 0}
13 回答12.7k 阅读
8 回答2.4k 阅读
2 回答5k 阅读✓ 已解决
7 回答1.8k 阅读
9 回答1.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答738 阅读
更兼容的版本