关键字
多组数组元素组合拼接,最终导致数组中有一些重复出现的元素。现将数组中重复的元素剔除掉,最终得到一组没有重复数据的新数组对象。
采用 reduce() 处理数组元素,达到最终目的;
reduce()对于空数组是 不会执行回调函数
reduce()
1array.reduce(function(total,currentValue, currentIndex, arr),initialValue)
参数列表:
1const filterArray = array => { 2 let tmp = {}; 3 let tmpArray = array.reduce((total, item) => { 4 tmp[item.id] ? "" : (tmp[item.id] = total.push(item)); 5 return total; 6 }, []); 7 return tmpArray; 8};
1// 使用 2let testArray = [{ 3 id: 1, 4 name: 'zhangsan' 5}, { 6 id, 7 2, 8 name: 'lisi' 9}, { 10 id: 1, 11 'zhangsan' 12}, { 13 id: 4, 14 name: 'wangwu' 15}]; 16// 过滤后数据 17let newArray = filterArray(testArray); 18 19newArray = [{ 20 id: 1, 21 name: 'zhangsan' 22}, { 23 id, 24 2, 25 name: 'lisi' 26}, { 27 id: 4, 28 name: 'wangwu' 29}];