实例一: Set + Array.from去重
let normalArr = [1,2,3,4,5,3,4,4,'a','b','f','a'];
let setArr = Array.from(new Set(normalArr))
console.log(setArr); // [1, 2, 3, 4, 5, "a", "b", "f"]
let normalArr = [1,2,3,4,5,3,4,4,'a','b','f','a'];
let setArr = [...new Set(normalArr)]
console.log(setArr) // [1, 2, 3, 4, 5, "a", "b", "f"]
const myArr = [1,2,3,5,2,2,5,6,7,'a','g','c','g'];
let setArr = []
myArr.forEach((v)=>{
if(setArr.indexOf(v) === -1){
setArr.push(v)
}
})
console.log(setArr) // [1, 2, 3, 5, 6, 7, "a", "g", "c"]
lodash CDN引用等相关资料可查看
const arr = [5,2,3,4,1,2,3,5,'a','c','b','d','a','b']
const solveArr = _.uniq(arr)
console.log(solveArr) // [5, 2, 3, 4, 1, "a", "c", "b", "d"]
const arr = [1,2,3,4,5,6];
const res = arr.reduce((a,b,c)=>{
// a总和 b当前值 c 索引值
console.log(a,b,c)
return a+b+c
},0); // 这个位置0,表示加法求和,若为'',是字符串拼接
const arr = [
{
name:"Ably",
age:20
},
{ // 与第一个元素 age 字段值相同
name:"Wang",
age:20
},
{ // 与第一个元素 name 字段值相同
name:"Ably",
age:21
},
{ // 与第一个元素完全相同
name:"Ably",
age:20
},
];
let tempObj = {}; // 这是一个对象
const res = arr.reduce((returnVal,currentVal)=>{
// 观察同一属性的值,并放入对象中,若对象中存在该值,则表明重复不进行处理,若对象中不存在该值,表示新值,需要存进去
console.log(tempObj) // 所有存在的值放入这个对象当中
if(!tempObj[currentVal.name]){
tempObj[currentVal.name] = true; // 若文中Ably的值为true,表示这个值存在,不会走里面的push方法
returnVal.push(currentVal);
}
// a总和,也就是每一次处理后的返回结果 b当前值 c 索引值
return returnVal
},[]);
console.log(res,"返回结果")
const arr = [
{
name:"Ably",
age:20
},
{ // 与第一个元素 age 字段值相同
name:"Wang",
age:20
},
{ // 与第一个元素 name 字段值相同
name:"Ably",
age:21
},
{ // 与第一个元素完全相同
name:"Ably",
age:20
},
];
const strItemArr = arr.map((v)=>{
return JSON.stringify(v)
})
const sortArr = Array.from(new Set(strItemArr))
const finalArr = sortArr.map((v)=>{
return JSON.parse(v)
})
console.log(finalArr)
总结用法,希望可以帮助到你,
我是Ably,你无须超越谁,只要超越昨天的自己就好~