常见的数组去重主要有俩方面:
- 由基本类型组成的数组去重
- 由对象组成的数组根据对象某个属性去重
基本类型去重:
export function unique(array) { const arr = [] const contain = {} array.forEach(item => { if (!contain.hasOwnProperty(item)) { arr.push(item) contain[item] = true } }) return arr }
效果:
根据对象属性去重:
/** * * @param {Array} array * @param {string} key ,对象属性名 * @returns {Array} */ export function uniqueByAttr(array, key) { const hash = {}; const arr = array.reduce((preVal, curVal) => { hash[curVal[key]] ? "" : (hash[curVal[key]] = true && preVal.push(curVal)); return preVal; }, []); return arr; }
效果:
脚踏实地行,海阔天空飞