在ES5中,关于Array的方法一共有9个。我决定来整理一下这些方法,方便大家复习。
Array.prototype.indexOf 查询数组
Array.prototype.lastIndexOf 倒序查询数组
Array.prototype.some 指是否“某些项”合乎条件
Array.prototype.every 指是否“每一项”合乎条件
Array.prototype.forEach 遍历操作数组中的元素
Array.prototype.map 对数组的每个元素进行一定操作(映射)
Array.prototype.filter 筛选操作,返回筛选后的数组
Array.prototype.reduce 可以实现一个累加器的功能(左到右)
Array.prototype.reduceRight 可以实现一个累加器的功能(右到左)
1.indexof()
indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1。
输入:
var arr = ['apple','orange','pear'];
console.log("found:", arr.indexOf("orange") );
复制代码
输出:
found:1
复制代码
2.some()
some意指“某些”,指是否“某些项”合乎条件。与下面的every算是好基友,every表示是否“每一项”都要靠谱。
array.some(callback,[ thisObject]);
需要向some里面传递一个回调函数
复制代码
输入:
var scores = [5, 8, 4, 9];
var xiaomingScore = 6;
function check(score) {
return xiaomingScore > score;
}
if (scores.some(check)) {
alert("xiaoming通过测试");
}
复制代码
输出:
弹窗:xiaoming通过测试
只要小明的分数超过scores中的一个即可返回true
换用every()的话,就需要小明的分数超过scores中的每一项才能返回true
复制代码
3. forEach()
forEach为每个元素执行对应的方法。
输入
var arr = [1,2,3,4,5,6,7,8];
arr.forEach(function(item,index){
console.log("item:"+item+",index:"+index)
})
复制代码
输出
item:1,index:0
item:2,index:1
item:3,index:2
item:4,index:3
item:5,index:4
item:6,index:5
item:7,index:6
item:8,index:7
复制代码
4.map()
map()对数组的每个元素进行一定操作(映射)后,会返回一个新的数组
输入:
let oldArray = [{first_name:"chen",last_name:"baiqiang"},
{first_name:"zhou",last_name:"yingying"}
]
function getFullName(){
return oldArray.map(function(item,index){
item.full_name = [item.first_name,item.last_name].join(" ")
})
}
复制代码
输出:
[{first_name:"chen",last_name:"baiqiang",full_name:"chen baiqiang"},
{first_name:"zhou",last_name:"yingying","zhou yingying"}]
复制代码
5.filter
该filter()方法创建一个新的匹配过滤条件的数组。
输入:
var arr = [
{"name":"apple", "count": 4},
{"name":"orange", "count": 2},
{"name":"pear", "count": 1},
{"name":"orange", "count": 4},
];
var newArr = arr.filter(function(item){
return item.name=='orange';
})
console.log("Filter results:",newArr.toString());
复制代码
输出:
Filter results: [{"name":"orange","count":2},{"name":"orange","count":4}]
复制代码
6.reduce
reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。。
输入:
var arr = [1,2,3,4]
arr.reduce(function(pre,next,index,arr){
return pre+next
})
复制代码
输出:
10
复制代码
执行过程
总结了一下关于Array的一些常用方法操作以及实例,欢迎大家多多吐槽留言,我是小强,我们下次见面。