前言:在实际开发当中,有时会涉及到数组对象的匹配问题--即一个对象数组中是否与另外一个数
前言:在开发中,有时会涉及到数组对象的匹配,并做对应的一些操作---即
组的某个属性一致,一致的话做 xxx 操作。
下面给个简单的例子:要求是,数组 arrayData1 与 arrayData2 做匹配,前者的 day 与 后者 的 value 相等的话,将后者对应的项的 status 字段修改 true。
该篇你还能学到:依据年和月 取到对应的天数。
arrayData1: [
{ day: '1', money: '12121.00' },
{ day: '2', money: '232323.00' }
],
arrayData2: [
{ label: '1日', value: '1', status: false },
{ label: '2日', value: '2', status: false },
{ label: '3日', value: '3', status: false },
{ label: '4日', value: '4', status: false },
{ label: '5日', value: '5', status: false }
]
个人做的两种方法:
思路都是将前者的 day 取出组成一个对象,比如 { 1: '1', 2: '2' } 这样的对象,接下来将后者进行遍历,符合要求的将对应字段修改为 true 即可。
1. 借助一个 map = {} 空对象
changeStatus() {
const map = {}
this.arrayData1.forEach(item => {
map[item.day] = item.day
})
this.arrayData2.forEach(aitem => {
if (aitem.value === map[aitem.value]) {
aitem.status = true
} else {
aitem.status = false
}
})
cons