前端进击者

有趣的JavaScript原生数组函数

2015-10-21  本文已影响87人  LuckyJing
Array对象的一些基本信息

查找.indexOf

arr.indexOf(elem)
我们实际中可能会写 a=='a' || a=='b' || a=='c',现在可以这么写。
['a','b','c'].indexOf(a)

循环 forEach

every 和 some

some将会给数组里的每一个元素执行一遍回调函数,直到有一个回调函数返回true为止。如果找到目标元素,some立即返回true,否则some返回false。回调函数只对已经指定值的数组索引执行;它不会对已删除的或未指定值的元素执行。

join 和 concat

.join(分隔符)方法创建一个字符串,会将数组里面每个元素用分隔符连接。如果没有提供分隔符,默认的分隔符为“,”。.concat方法创建一个新数组,其是对原数组的浅拷贝(注意是浅拷贝哦)。


栈方法 入栈push/unshift 出栈pop/shift

队列方法 shift出队列 unshift 入队列

用.shift或.pop能很容易遍历数组元素,并在操作过程中清空数组

list = [1,2,3,4,5,6,7,8,9,10]
while (item = list.shift()) {
    console.log(item)
}

模型映射.map

map方法会按顺序给原数组中的每个元素(必须有值)都调用一次 callback函数.callback,每次执行后的返回值组合起来形成一个新数组. callback函数只会在有值的索引上被调用; 那些从来没被赋过值或者使用delete删除的索引则不会被调用。

查询.filter

filter对每个数组元素执行一次回调函数,并返回一个由回调函数返回true的元素组成的新数组。回调函数只会对已经指定值的数组项调用,类似SQL里where语句

排序.sort(比较函数)

传入一个function(a,b)的函数。

复制.slice

返回的是浅拷贝
Array.prototype.slice能被用来将类数组对象转换为真正的数组。

Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })

从参数列表中移除最初的几个元素,并将类数组对象转换为真正的数组。

var values = Array.prototype.slice.call(arguments, 2)//从第二个参数开始
上一篇 下一篇

猜你喜欢

热点阅读