当前位置:首页 > 生活百科

jsarray删除元素(js获取array长度讲解)

栏目:生活百科日期:2024-12-20浏览:0

JS是唯一几乎全面支持函数式编程的流行语言,而函数编程的起点是处理数组。因此,我们首先来盘点 array 数组的5类22种方法。

一、数组变形 Transform (函数范式的纯函数)

首先列出对数组变形操作的没有side-effects的函数。

1) reduce 2) map 3) flat 4) flatMap 5) fill 6) forEach。其中 forEach 非 pure-function, 但属于隐性迭代方法,故而分类在此。

// 1.reducelet total = &[ 0, 1, 2, 3 ].reduce( ( acc, cur ) =&> acc + cur,                                  0);// 2.map const maped = &[4, 7, 9, 18].map(x =&> x * 2);// 3.flatlet arr2 = &[5, 2, 3].flat();// 4.flatMap&[5, 8, 9, 6].flatMap(x =&> &[&[x * 2]]); // 5.fill 非纯函数,但是因为常用于构建 range 用于迭代,因此分类到这里Array(5).fill(0)// 6.forEach 非纯函数,作为 map 处理有 side-effect 问题的替代方案。&['x', 'y', 'z'].forEach(el =&> console.log(el));

二、数组逻辑判断 logic predicates(函数范式的纯函数)

函数范式的六个methods之后,我们继续考察用于逻辑判断的高阶函数:

1) filter 2) find 3) findIndex 4) includes 5) indexOf 6) some 7) every 以及我们可以自己构建颇有帮助 range 与 not。

其中 include 是 find 应用于一个元素,而 indexOf 则是 findIndex 用于一个元素。

// 1.filter&[23, 76, 98, 101].filter( v =&> v &> 30 &&&& v &< 100); //&[ 76, 98 ]// 2.find 只需要单个元素则用 find&[23, 76, 98, 101].find( v =&> v &> 30 &&&& v &< 100); // 76 // 3.findIndex 查找单个元素的index&[23, 76, 98, 101].findIndex( v =&> v &> 30 &&&& v &< 100); // 1// 4.includes 是 find 查找特定元素&[23, 76, 98, 101].includes(77) // false// 5.indexOf 是 findIndex 查找某个特定元素的 index,返回值为 -1 &[23, 76, 98, 101].indexOf(77) // -1// 6.some&[23, 76, 98, 101].some(v =&> v &> 30 &&&& v &< 100) //true// 7.every&[23, 76, 98, 101].every(v =&> v &> 30 &&&& v &< 100) //false

三、非函数式的数组变形(纯函数)

以上两组12个函数均为函数范式编程的纯函数。接下来考察,其他对数组变形的纯函数。(纯函数是指没有side-effect副作用的函数):

1) concat 2) join 3) slice 4) splice (非纯函数,将会修改原数组,放在此处只与slice对比,作为提醒)

// 1.concat &['x', 'y', 'z'].concat(&[9, 8, 7]);// 2.join&['x', 'y', 'z'].join(",");// 3.slice&['x', 'y', 'z'].slice(1, 3);// 4.splice放到第四组中,此处只为提醒与slice相对比。

四、操作数据结构 (非纯函数)

Array可以作为两种抽象结构数据的载体:分别为 stack 和 queue。

1) push 2) pop 3) shift 4) unshift 5)splice(splice属于特殊方法,因为更改了原数组,放在此处)

let arr = &[23, 76, 98, 101];// 1. push 元素添加到尾部&> arr.push(120)5&> console.log(arr)&[ 23, 76, 98, 101, 120 ]// 2.pop 以上 push 与 pop 组合构建 stack 数据结构。&> arr.pop()120&> arr&[ 23, 76, 98, 101 ]// 3.shift 从数组头部取出元素,与push组合构建 queue 数据结构&> arr.shift()23&> arr&[ 76, 98, 101 ]// 4. unshift 从数组头部添加元素&> arr.unshift(59, 145)5&> arr&[ 59, 145, 76, 98, 101 ]// 5.splice 为特殊的方法,用于拼接数组&> arr.splice(1, 2, 55, 66, 77, 88)&[ 145, 76 ]&> arr&[ 59, 55,  66, 77, 88, 98, 101 ]

五、数组排序 (非纯函数)

最后以无处而不在的排序收尾,无论是 sort 还是 reverse 都直接在原数组上修改,也就是 inplace 操作。

1) sort 2) reverse

// 1. sort &[23, 76, 98, 101].sort((x,y) =&> x - y)// 2.reverse&[23, 76, 98, 101].reverse()

六、思维导图总结

“jsarray删除元素(js获取array长度讲解)” 的相关文章

华为p7什么时候上市,其价格及参数配置一览

不得不说,国产手机做得越来越惊艳了,华为P7就是最新的代表。外观精美、轻薄如蝉、订制系统、精简干练,看点很多。当然,自家的海思Kirin910T处理器也引来不少...

excel怎么插入一行进去(excel表格if使用方法)

Excel如何快速隔行插入空行Excel是我们日常办公经常使用的软件,有时候我们使用Excel时要隔行插入空行,或者隔几行插入空行,这是怎么做的呢?下面就给大家...

好玩的微信小游戏有哪些,2019微信最火小游戏

随着微信跳一跳上线,玩一个小游戏变成了大家打开微信最正经的事。一时间所有微信好友都沉迷在跳一跳里不能自拔。跳一跳已经上线了两个礼拜了,大家玩够了吗?虽然到现在为...

excel自动凑数求和教程(凑数求和的简便算法)

相信办公中的小伙伴有时会遇到这个难题,有时真的是一脸懵逼,不知如何下手,特别是数学本身就不好的人,更是无奈啊。于是我左思右想结合网络资源,最终找到了几个最适合简...

java创建数组的几种方式(java编写图形界面程序)

数组是具有相同数据类型的一组数据的集合,作为对象允许使用new关键字进行内存分配。首先先来熟悉一下一维数组的创建和使用。声明一维数组,有下列两种方式:数组元素类...

B站35岁女副总裁被曝和24岁UP主结婚(身价80亿)

近日,有网友爆料称,B站35岁女副总裁李旎和24岁的UP主“老坛胡说”结婚了,并且已经办了婚礼。据相关资料介绍,“老坛胡说”本名叫谭成锋,今年24周岁,是一位美...

如何做亚马逊站内广告,亚马逊站内广告类型介绍

对于大部分卖家来说,在亚马逊的运营中,站内广告是必不可少的推动产品销量上升和成为爆款的工具。亚马逊在站内广告的投放上有两种投放方式:自动广告和手动广告。有不少卖...

如何做好aso优化,aso优化方案分享

提纲1.什么是ASO优化2.如何做好基础的ASO数据优化—keywords一、ASO优化是什么?1.ASO是什么?如上图,AppStore的分发量主要分布于:推...

seo查询是什么,一文带你快速了解其概念

一、什么是SEOSEO称为搜索引擎优化,其目的是为了提高自己的网站在自然搜索中的排名,同时扩大搜索结果实现更大范围的品牌曝光,为网站提供生态市的自我营销解决方案...

mysql每天自动备份脚本(服务器文件备份到本地)

很多人会问为什么要使用Svn或者是Git,那么我会问:我相信你写的代码很好,但是有一天你修改了很多很多的Bug,但是突然想到以前的代码中有一个比较重要的算法你不...