this.smartEnergys.forEach(item => {
if (item.id=== data.id) {
const properties = ['alternator', 'charge', 'esu', 'phvoltaic', 'battery']
properties.forEach(prop => {
if (data[prop]) {
if (item[prop]) {
item[prop].push(...data[prop])
} else {
item[prop] = data[prop]
}
}
})
} else {
const exists = this.smartEnergys.some(existingItem => existingItem.companyCode === data
.companyCode)
if (!exists) {
this.smartEnergys.push(data)
}
}
})
-
定义属性数组:首先,定义了一个数组
properties
,其中包含了五个字符串,分别是'alternator'
、'charge'
、'esu'
、'phvoltaic'
和'battery'
。 -
遍历属性:使用
forEach
方法遍历properties
数组中的每一个属性名prop
。 -
检查数据存在性:
- 对于每个
prop
,首先检查data
对象中是否存在该属性(data[prop]
)。 - 如果存在,再检查
item
对象中是否已经有这个属性(item[prop]
)。
- 对于每个
-
合并数据:
- 如果
item
对象中已经有这个属性,则使用push
方法将data[prop]
中的所有元素添加到item[prop]
数组中。 - 如果
item
对象中没有这个属性,则直接将data[prop]
的值赋给item[prop]
。
- 如果