记录一下关于数组对象去重的方法记录一下
//1.0 代码1位业务代码去重(比如说传入一个对象,有添加新数组没就添加这个数组中)
let arr [ // 原数组数据对象 ]
let copy = [] // 创建一个新的数组
function (val) {
! copy.some (item=>item.id===val.id) && copy.push (val) // 其实这一步就已经完成了 代逻辑:some 只要在新数组中找到一个值和传入的值相等,就返回tru
//e,没有相等就返false,取反,就直接添加数组中即可!
}
// 2.0 数据去重 (数组对象去重)
let arr = [
{id:1,name:'www',age:18},
{id:2,name:'www',age:17},
{id:1,name:'www',age:16},
]
let obj = {} // 创建一个空对象,利用对象属性值去重
arr.reduce( (pre, item) = >{
obj[item.id] ? ' ' : obj [item.id] = true && pre.push(item)
return pre
} ,[ ] )
// 1 利用数组es5的属性reduce方法5个参数(pre,item,index,arr) init(初始对比值),init默认是传入的值,不传就数组的第一个值(注意:如果不传就会数组第一个值和第二个值做对比,会少循环一次.....)具体可以看下reduce的适用方法
// 2 利用属性值的属性做对比 把获取到id值添加对象,有的话,清空,没得话添加一个属性值为true( 或下次添加 )
#### 贴上自己喜欢的一句话
> 一切往事皆为序章,往事成风,段段张张! ------------ END !