在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:0item:2,index:1item:3,index:2item:4,index:3item:5,index:4item:6,index:5item:7,index:6item: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的一些常用方法操作以及实例,欢迎大家多多吐槽留言,我是小强,我们下次见面。