//reduce对数组套对象去重
let arr = [
{ id: 0, name: "张三" },
{ id: 1, name: "李四" },
{ id: 2, name: "王五" },
{ id: 3, name: "赵六" },
{ id: 1, name: "孙七" },
{ id: 2, name: "周八" },
{ id: 2, name: "吴九" },
{ id: 3, name: "郑十" },
];
function fun(arr){
let obj = {}
arr = arr.reduce((newArr,next)=>{
obj[next.id]?'':obj[next.id] = true&&newArr.push(obj)
return newArr
},[])
return arr
}
console.log(fun(arr));
//reduce对数组求和
const prices = [5.99, 2.99, 3.99, 11.59]
function sum(prices){
const sumNum = prices.reduce((preVal,nextVal)=>{
return preVal +nextVal
},0)
return sumNum
}
console.log(sum(prices))
//reduce将二维数组转成一维数组 也可以支持多维转一维
var rows = [[2, 3, 5], [1, 2, 4], [8, 5, 5]]
function twotoone(rows){
const newA = rows.reduce((pre,next)=>{
return pre.concat(next)
})
return newA
}
console.log(twotoone(rows))
//数组转对象 元素和出现的次数
const apples = ['green', 'red', 'red', 'yellow', 'red', 'yellow', 'green', 'green'];
function arrtoobj(apples){
const lastRes = apples.reduce((pre,next)=>{
pre[next]>=1? pre[next]++ :pre[next] = 1
return pre
},{})
return lastRes
}
console.log(arrtoobj(apples))
//手写深拷贝
const deepCopy = (obj)=>{
const newObj = obj.constructor === Array?[]:{};
for(let key in obj){
if(obj.hasOwnProperty(key)){
if(obj[key]&&typeof obj[key] === 'object'){
newObj[key] = deepCopy(obj[key])
}
else{
newObj[key] = obj[key]
}
}
}
return newObj
}
}
}
reduce方法
原创
©著作权归作者所有:来自51CTO博客作者wx6466f1272f612的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
js 数组 reduce() 方法
概念reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),
js 数组 对象数组 javascript -
iOS OC 富文本 文字盖在图片上面
前段时间整富文本整的我头疼,一开始用的是百度的ueditor编辑器优点:插件多,基本满足各种需求,类似贴吧中的回复界面。缺点:不再维护,文档极少,使用并不普遍,图片只能上传到本地服务器,如果需要上传到其他服务器需要改动源码,较为难办,加载速度慢。后放弃ueditor,主要原因是无法上传视频,连官网的demo都无法上传.....最后找了个既轻量级又能满足需求的编辑器----wangEditor,而且
iOS OC 富文本 文字盖在图片上面 c# 富文本编辑器图片粘贴上传处理 html插入本地图片 php xlsx里插入图片 百度富文本 自定义上传去掉定义域名