1、对象数组去重
let arr = [
{"value":"001",name:"张三"},
{"value":"002",name:"李四"},
{"value":"003",name:"王五"},
{"value":"001",name:"张三"}
]
方法一:
function getUnique(arr) {
const res = new Map()
return arr.filter((item) => !res.has(item.value) && res.set(item.value, 1))
}
方法二:
function getUnique(arr) {
let hash = {};
let newArr = arr.reduce((item, next)=>{
hash[next.key] ? '' : hash[next.key] = true && item.push(next);
return item;
},[])
return newArr
}
结果:[{"value":"001",name:"张三"},{"value":"002",name:"李四"}, {"value":"003",name:"王五"}]
2、返回满足条件的对象
var arr=[
{id:1,name:'张三'},
{id:2,name:'李四'},
{id:3,name:'王五'},
{id:2,name:'赵六'}
]
arr.find( t=> t.id==‘2’)
结果(返回第一个满足条件的对象):{id:2,name:‘李四’}
3、返回满足条件的对象数组
var arr=[
{id:1,name:'张三'},
{id:2,name:'李四'},
{id:3,name:'王五'},
{id:2,name:'赵六'}
]
arr.filter( t=> t.id==‘2’)
结果(返回符合条件的所有对象):[{id:2,name:‘李四’},{id:2,name:‘赵六’}]
4、遍历对象数组返回true或者false
var arr=[
{id:1,name:'张三'},
{id:2,name:'李四'},
{id:3,name:'王五'},
{id:2,name:'赵六'}
]
var result = arr.some(item=>item.name==='王五')
结果(如果arr数组对象中含有name:'王五',就会返回true,否则返回false):true
5、遍历数组的方式:
var arr=["张三","李四","王五","赵六"]
1、for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
2、for(var i in arr){//es5标准
console.log(arr[i])
}
3、for(let i of arr){//es6标准
console.log(i)
}
4、arr.forEach((item,index) =>{
console.log(item)
})
5、arr.map((item,index) =>{
console.log(item)
})
6、let i=0;
while(arr[i]){
console.log(arr[i])
i++
}
结果(遍历对象数组方法同上):张三 李四 王五 赵六
6、数组元素求和
1、let arr = [1,2,3,4,5,6]
let sum = arr.reduce((pre, cur) => pre + cur)
console.log(sum)
结果:21
7、对象数组元素求和
let arr = [{value:1},{value:2},{value:3}]
let sum = arr.reduce((pre, cur) => {return pre + cur.value}, 0)
console.log(sum)
结果:6
8、数组去重
let arr = [1,2,3,2,4,1,5]
let newArr = arr.reduce((pre, cur) => {
return pre.includes(cur) ? pre : pre.concat(cur)
}, [])
console.log(newArr)
结果:[1,2,3,4,5]