数组方法和函数式编程

Posted 鸡汤小弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组方法和函数式编程相关的知识,希望对你有一定的参考价值。

惜命的最好方式,不是养生,而是折腾自己!


一、数组三巨头,

1、constructor

数组也是对象,是Array这个构造函数的实例,而数组的constructor指向Array这个构造函数本身;除了Global和Math对象之外的所有内部js对象,都具有constructor这个属性;global是js运行时所在的宿主环境的全局对象,在浏览器中相当于window,在nodejs中是global。

2、prototype

为数组的实例返回原型的引用,这样我们就可以在Array上挂载自定义方法,在数组中调用;

3、length

获取或设置数组的长度,在js中数组是稀疏的,且数组中的元素不一定是连续的,length属性不一定是数组中的元素数;

二、数组方法返回数组

1、from

将可迭代的对象变成数组,

2、of

传入的每一个参数,都将作为数组的元素;

3、concat

连接(合并)两个或两个以上的数组,

4、map

对数组的每个元素调用回调函数并返回包含结果的数组,也可以说,对数组原有元素进行修改,然后返回新数组;

5、filter

       返回数组中的满足回调函数中指定的条件的元素,

        两个参数,第一个为回调函数,第二个为thisArg参数的用法,该参数指定对其用的this关键字的对象;

三、数组的增删改查

1、push

将新元素添加到数组中,并返回一个新的数组长度;

2、unshift

在数组的开头插入新元素;

3、shift

移除数组的第一个元素,并返回该元素;

4、slice

截取数组,一个参数为起始位置,第二个为结束位置;

5、splice

从一个数组中移出元素或替换元素,改变原数组;第一个参数为起始位置。第二个为移除元素个数,之后的参数为替换的元素;

6、pop

移除数组的最后一个元素,并返回该元素,原数组改变;

7、indexOf

返回数组匹配到值得 索引,两个参数,一个为要匹配的值,另一个为要匹配的其实位置;

四、变着花样玩

1、join

添加指定分隔符,变为字符串;

2、reverse

翻转数组;

3、sort

数组排序

4、toString

把数组转为以逗号间隔的字符串;

5、fill

填充数组,第一个参数是要填充的值,第二个是开始填充的位置,第三个是结束填充的位置,这个方法很少用,一般我们用splice。

6、reduce

累加数组,返回每次调用函数的返回值,通常使用两个参数,一个previousValue,上一个函数的返回值,

另一个是currentValue,本次函数的值。

五、测试数组

1、some

some 方法会按升序索引顺序对每个数组元素调用 callbackfn 函数,直到 callbackfn 函数返回 true。如果找到导致 callbackfn 返回 true 的元素,则 some 方法会立即返回 true。也就是说数组中只要有满足条件的就返回true;

2、every

every 方法会按升序顺序对每个数组元素调用一次 callbackfn 函数,直到 callbackfn 函数返回 false。如果找到导致 callbackfn 返回 false 的元素,则 every 方法会立即返回 false。也就是说数组中的每一个元素都满足条件才能返回true,只要有一个不满足就返回fasle;

六、函数式编程风格

js并非函数式编程语言,但可以应用这种技术;那么什么是函数式编程呢?函数式编程主要思想是把运算过程尽量写成一系列嵌套的函数调用,而在js中我们利用数组方法来进行这种编程,比如map()、reduce()、filter()等等;在数组方法中有一类方法,可以传入一个方法callbackfn当做参数,第二个参数可选,同时第二个参数是第一个参数方法中的this的指向对象;

以上是关于数组方法和函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

《JS权威指南学习总结--8.8 函数式编程和8.8.1使用函数处理数组》

JS函数式编程

函数式程序设计:「20] 应用函数式编程将字符串转换为 URL

用一个数组来体验函数式编程

自习室.14 | React 函数式编程和单向数据流

函数式编程五分钟理解函数组合