数组方法的总结
原型链中
1、添加或者移除元素
Array.prototype.push() [改变原数组]
作用:入栈,将元素添加到数组的最后
参数: 入栈的元素
返回值:入栈后数组的长度
Array.prototype.pop() [改变原数组]
作用:出栈,将数组末尾元素从数组中拿出
参数: none
返回值:出栈元素
Array.prototype.shift() [改变原数组]
作用:出队,将数组第一个元素从数组中拿出
参数: none
返回值:出队元素
Array.prototype.unshift() [改变原数组]
作用:插队,将元素添加到数组的最前面
参数: 插队的元素
返回值:数组的长度
2、排序方法【改变原值】
Array.prototype.reverse() 【原值改变】
作用:将数组中的元素反转
参数:
返回值:反转之后的数组
Array.prototype.sort() [改变原数组]
作用:排序,将元素按照Ascii表进行排序
参数: node或者函数
返回值:返回排序后的数组
function handlar(a,b){
if(a>b){
return 1;
}else{
return -1;
}
}
1) 比较器函数生成函数
function compare(prop){
return function(a,b){
if(a[prop]>b[prop]){
return -1;
} else {
return 1;
}
}
}
2) 调用生成函数生成一个比较器函数,f为比较器函数
var f = compare("price")
3) 将比较器函数作为参数传递给sort
goods.sort(f);
---等价于---
goods.sort((function(prop){
return function(a,b){
if(a[prop]>b[prop]){
return -1;
} else {
return 1;
}
}
})("price"));
3、截取方法
Array.prototype.concat() [不改变原数组]
作用:合并,将两个数组进行合并
参数:多个数组
返回值:合并的后的新数组
Array.prototype.slice(begin,end) [不改变原数组]
作用:截取子字符串并且返回
参数:begin表示截取的开始位置;end默认为0,结束位置 截取个数为 end-begin
返回值:截取后的字符串
Array.prototype.splice(begin,delete,insert,…) [改变原数组]
作用:截取 替换 删除
参数:begin表示截取的开始位置;delete表示删除的元素个数 insert插入的元素
返回值:被删除的元素组成的数组
4、 索引方法
Array.prototype.indexOf()
作用:返回元素的索引
参数:唯一
返回值:元素索引 如果没有指定的元素返回-1
Array.prototype.lastindexOf()
作用:返回元素的索引
参数:唯一
返回值:元素倒着数的第一个索引
5、序列化
Array.prototype.join(“s”)
将数组转换为字符串,通过s分割开数组中每个元素。
JSON.stringify() // es标准
querystring.stringify() // nodejs,浏览器(第三方)
6、 迭代 (循环)
Array.prototype.forEach(handler)
作用:遍历指定数组
参数:回调函数,可以接受3个参数(item,index,arr)
forEach方法每次遍历出来一个元素后都执行该回调函数
返回值:undefined
arr.forEach(function(item,index,arr){
item 为每次遍历出来的元素
index为遍历时候的索引
arr为当前正在遍历的数组
})
Array.prototype.every(handler)
作用:遍历指定数组,判断是否每个元素都满足指定条件
参数:回调函数,可以接受3个参数(item,index,arr),该回调函数会返回一个boolean值,当所有回调函数返回true,最终every方法的结果为true, 当有一个回调函数返回了false,该函数中止,every方法的结果为false
返回值:boolean
Array.prototype.some(handler)
作用:遍历指定数组,判断是否有元素都满足指定条件
参数:回调函数,可以接受3个参数(item,index,arr),该回调函数会返回一个boolean值,当有回调函数返回true,该函数中止,最终every方法的结果为true, 当所回调函数返回了false,every方法的结果为false
返回值:boolean
Array.prototype.map(handler)
作用:从指定元素中映射出某些值,组成新的数组返回
参数:回调函数,可以接受3个参数(item,index,arr),该回调函数会返回一个数组,数组元素为每个回调函数返回的值
返回值:Array
Array.prototype.filter(handler)
作用:从指定中过滤出满足条件的元素,组成新的数组返回
参数:回调函数,可以接受3个参数(item,index,arr),该回调函数会返回一个数组,数组元素为回调函数返回值为true的那个元素
返回值:Array