处理两个数组对象里异同项的一些方法

123 阅读1分钟

业务场景一:a项目勾选的是无效项,选择后弹窗提示,点击确定后将该无效项的勾选取消:

//找出筛选无效规则的数据
const invalidList = this.saveList.filter(i => !i.i.invalidRule)
//先筛选出所有已选择的数组里,不符合规则的数据名称
const filterList = invalidList.map(t => t.projectName)
//拼接中文
const filterRule = '【' + filterList.join('】【') + '】'
//提示语略过
//把不符合的数据从整个数组的勾选里删除
unableList.forEach(i => {
    const fIndex = this.list.findIndex(t => t.projectId === i.projectId)
    if (fIndex !== -1) {
        this.$set(this.list[fIndex], 'check', false)
    })

业务场景二:选择了n个项目,判断这n个项目是否都符合同一规则

//判断数组的每一项是否跟第一项相等
this.saveList.every(i => i.rule === this.saveList[0].rule)

业务场景三:b列表选择的数据要加到a列表里面去,只把a选过的带过去。

const newAddList = aList.filter(i=> !bList.some(t=> t.id === i.id))
const List = [...aList,...newAddList]