var list1 = [{name: 'a'}, {name: 'b'}] var list2 = [{}, {}] var obj = {} var list = [...list1, ...list2].reduce(function(item, next){ obj[next.name] ? '' : obj[next.name] = true && item.push(next) }, [])