You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
functioncombineProperty(arr,property){returnarr.reduce((prev,next)=>{return[...prev, ...next[property]];},[]);}varfriends=[{name: 'Anna',books: ['Bible','Harry Potter'],age: 21},{name: 'Bob',books: ['War and peace','Romeo and Juliet'],age: 26},{name: 'Alice',books: ['The Lord of the Rings','The Shining'],age: 18}];varresult=combineProperty(friends,'books');console.log(result);// ["Bible", "Harry Potter", "War and peace", "Romeo and Juliet", "The Lord of the Rings", "The Shining"]
初次看到这张图,直接被笑哭 😂 炒鸡形象有木有
map:让数组通过某种计算产生一个新数组,返回修改后的数组
forEach:让数组中的每一项做一件事,返回underfined
filter:筛选出数组中符合条件的项,组成新数组,过滤后的数组
reduce:让数组中的前项和后项做某种计算,并累计最终值,返回值
forEach用于看,map用于改,filter用于删,reduce用于统计
every:检测数组中的每一项是否符合条件,全部满足则返回true
Some:检测数组中是否有某些项符合条件,只要有一个满足则返回true
reduce
MDN -reduce
arr.reduce(callback[, initialValue])
reduce(callback, initialValue)会传入两个变量。回调函数callback和初始值initialValue。
官方写法如下
callback 有四个参数:prev、next、index、array
一般来讲prev是从数组中第一个元素开始的,next是第二个元素。
但是当你传入初始值initialValue后,第一个prev将是initivalValue,next将是数组中的第一个元素。
reduce实例
以下例子都是MDN上面的,我稍微改造成了函数形式,可以直接用
累加
二维数组转化为一维
计算数组中每个元素出现的次数
合并数组中所有对象的某一属性,利用扩展运算符
数组去重
The text was updated successfully, but these errors were encountered: