原数组:arrayData1
要添加进去的数组:arrayData2
用到的方法:
filter():创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
every():使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
const newArr = arrayData1.filter(item1 => {
return arrayData2.every(item2 => {
// id为数组的关键标识(根据自己数组中的数据决定)
return item1.id !== item2.id
})
})
// 把过滤好的新数组添加到原数组中
arrayData1 = [...arrayData1, ...newArr]
另外记录一个将字符串转化为数组对象,并为数组对象添加属性的方法:
// 原字符串
let str = '字符1/字符2'
// 预期结果
dictValueList = [
{name: '字符1', isEdit: false}
{name: '字符2', isEdit: false}
]
方法:
let dictValueList = []
str.split('/').map(item => {
dictValueList.push(Object.assign({}, { name: item }, { isEdit: false }))
})