一、mapmap返回新数组,不改变原数组。
原始数组的每一项都会调用提供的函数并返回新的数组。
[●,●,■,●].map(●=>■)→[■,■,■,■]letarr=['杜甫','李白','李商隐','白居易'];letmapArr=arr.map(e=>'苏轼');//console.log(mapArr):["苏轼","苏轼","苏轼","苏轼"]二、filterfilter返回新数组,不改变原数组。
数组内的每一项通过函数处理后,返回一个各项都符合条件的数组。
在下面这个数组中,如果想把宋朝的诗词人过滤出来,就可以使用filter方法。
[○,△,□,△].filter(△=>true)→[△,△]letarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];letfilterArr=arr.filter(e=>e.age==='宋');/***console.log(filterArr):[*{id:3,name:'苏轼',age:'宋'},*{id:4,name:'辛弃疾',age:'宋'}*]*/三、findfind返回的是数组中的一项,不改变原数组。
通过函数处理后返回符合元素中的第一项,只要找到符合的就把这一项给返回出去。
[○,△,□,△].find(△=>true)→(first)△letarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];letfindItem=arr.find(e=>e.age==='宋');/***console.log(findItem):{id:3,name:"苏轼",age:"宋"};*/四、findIndex返回的是索引值,不改变原数组。
通过函数处理后返回符合元素中的第一项的索引值,和find方法一样,都是只找到第一个符合的就返回。
[○,△,□,△].findIndex(△=>true)→(first)△letarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];letfindItem=arr.find(e=>e.age==='宋');/***console.log(findItem):{id:3,name:"苏轼",age:"宋"};*/五、everyevery返回布尔值,不改变原数组。
every是检查数组中的所有元素是否都符合条件,如果都符合返回true,有一项不符合就返回false[○,○,○,△].every(○=>true)→falseletarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];leteveryFlag=arr.every(e=>e.age==='宋');/***console.log(everyFlag):false*/六、somesome返回的是布尔值。
检查数组中是否有任意一个元素符合条件,只要有一个符合就返回true。
[△,○,○,△].some(△=>true)→trueletarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];letsomeFlag=arr.some(e=>e.age==='宋');/***console.log(someFlag):true*/七、concatconcat返回新数组。
concat是合并两个数组,将两个数组合并成一个新的数组并返回。
[○,□,△].concat([△,○])→[○,□,△,△,○]letarr=[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'}];letnewArr=[{id:5,name:'李清照',age:'宋'}];letconcatArr=arr.concat(newArr);/*console.log(concatArr):[{id:0,name:'杜甫',age:'唐'},{id:1,name:'李白',age:'唐'},{id:2,name:'李商隐',age:'唐'},{id:3,name:'苏轼',age:'宋'},{id:4,name:'辛弃疾',age:'宋'},{id:5,name:'李清照',age:'宋'}]*/八、join返回字符串。
将数组的每个元素拼接成字符串,没有传参就直接拼接,如果有参数就将参数当做拼接符连接。
[○,□,△,○].join('-')→○-□-△-○letarr=['贝','加','尔','湖','畔'];letjoinStr=arr.join('-')/*console.log(joinStr):贝-加-尔-湖-畔*/九、reduce累加结果可以做一个累加器[1,2,3,4].reduce((total,current)=>total+current,10)→20letarr=[1,2,3,4];letreduceRes=arr.reduce((total,current)=>total+current,10);/*console.log(reduceRes):20*/十、forEachforEach改变了原数组对数组中每一项都执行一次函数。
[●,●,■,●].forEach(●=>■)→[■,■,■,■]letarr=[{id:0,name:'杜甫'},{id:1,name:'李白'},{id:2,name:'李商隐'}]letforEachArr=arr.forEach(e=>e.age='唐')/***arr:[*{id:0,name:'杜甫',age:'唐'},*{id:1,name:'李白',age:'唐'},*{id:2,name:'李商隐',age:'唐'}*]**forEachArr:undefined*/十一、flatflat改变原数组flat用于将数组扁平化,参数为要扁平化的层数,可以直接传入Infinity,表示全部扁平化。
[○,□,[△,[△,○]]].fill(Infinity)→[○,□,△,△,○]letarr=[1,2,[[3],4]];arr.flat(Infinity);/*console.log(arr):[1,2,3,4]*/十二、fillfill改变原数组。
fill作用为填充数组。
第一个参数为要填充的内容,后面的两个参数分别为开始到结束的位置。
[○,□,△,○].fill(☆,2,3)→[○,□,☆,○]letarr=[1,2,3,4];arr.fill('你好',2,3);/*console.log(arr):[1,2,'你好',4]*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)