对象数组合并和去重

数组去重:

普通字符串/数字数组去重:

1. 利用Set的特性 => new Set(arr)

2. for遍历, indexOf判断是否存在

3. 利用对象去重,  因为对象的key有唯一性

数组合并:

可以使用克隆(克隆, 深克隆的那些方法)

对象数组去重:

 for循环, find或者findIndex判断是否存在, 然后不存在就push

// 对象数组合并+去重
function mergeArray(arr1, arr2) {
    // 克隆
    var arr= arr1.slice(0)
    var  v
    for(let i in arr2) {
        v = arr2[i]
        if(~arr.findIndex(ee=>ee.id === v.id)) {
            continue
        }
        arr.push(v)
    }
    return arr
}
const arr1 = [{id: 1}, {id: 2}, {id:3}]
const arr2 = [{id: 3}, {id: 4}, {id: 3}, {id:5}]
// 合并+去重
console.log(mergeArray(arr1, arr2))
// 单纯给arr2数组去重--mergeArray的第一个参数传[], 第二个传需要去重的数组
console.log(mergeArray([], arr2))

对象数组合并和去重_第1张图片

你可能感兴趣的:(JavaScript面试问题,克隆,去重,javascript,克隆,去重)