数组方法和函数式编程
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使用函数处理数组》