数组在JS中虽然没有函数地位那么高,但是也有着举足轻重的地位,下面我就结合这ES5中的一些常用的方法,与ES6中的一些方法做一些说明和实际用途。大家也可以关注我的微信公众号,蜗牛全栈。

一、ES5中数组常用方法:

1、循环遍历。

1 let arr = [1,2,3]
2 for(let i=0;i<arr.length;i++){
3 console.log(i) // 1 2 3
4 }

2、forEach:没有返回值,不能使用break和continue。只是针对每个元素调用Func。

let arr = [1,2,3]
// elem 数组里面的每一项
// index 数组索引
// array 数组
arr.forEach(function(elem,index,array){
console.log(elem,index) // 1 0 2 1 3 2
})

3、map:返回新数组,每个元素为调用Func后的结果。

let arr = [1,2,3]
let result = arr.map(function(val){
val += 1
return val
})
console.log(arr,result) // [1,2,3] [2,3,4]

4、filter:返回符合Func条件的元素数组。

let arr = [1,2,3]
let result = arr.filter(function(val){
return val == 2
})
console.log(arr,result) // [1,2,3] [2]

5、some:返回布尔值,判断是否有元素符合Func条件(有一个满足条件就返回true)。

let arr = [1,2,3]
let result = arr.some(function(val){
return val == 2
})
console.log(arr,result) // [1,2,3] true

6、every:返回布尔值,判断每个元素符合Func条件(全部满足条件才返回true)。

let arr = [1,2,3]
let result = arr.every(function(val){
return val == 2
})
console.log(arr,result) // [1,2,3] false

7、reduce:接收函数作为一个累加器

7-1:累加器

let arr = [1,2,3]
// prev为前一个对象
// cur为当前对象
// index为当前序列
// arr为当前数组
let sum = arr.reduce(function(prev,cur,index,arr){
return prev + cur
},0)
console.log(sum) // 6

7-2、获取数组中最大值。

let arr = [1,2,3]
let max = arr.reduce(function(prev,cur){
Math.max(prev,cur)
})
console.log(max) // 3

7-3、数组去重

let arr = [1,2,3,3]
let res = arr.reduce(function(prev,cur){
prev.indexOf(cur) == -1 && prev.push(cur)
return prev
},[])
console.log(res) // [1,2,3]

8、for...in:遍历数组的时候会将原型下面函数遍历

Array.prototypr.foo = function(){
console.log("foo")
}
let arr = [1,2,3]
for(let index in arr){
console.log(index) // 遍历数组同样会遍历原型下面的函数foo
}

二、ES6中数组常用方法

1、find:返回第一个通过测试的元素

let arr = [1,2,3,4]
let res = arr.find(function(val){
return val > 2
})
console.log(res) // 3

2、findIndex:返回第一个通过测试的元素对应索引

let arr = [1,2,3,4]
let res = arr.find(function(val){
return val > 2
})
console.log(res) // 2

3、for...of

let arr = [1,2,3,4]
for(let item of arr){
console.log(item) // 1 2 3 4
}

3-1、values:仅遍历值

let arr = ["a","b","c","d"]
for(let item of arr.values()){
console.log(item) // "a" "b" "c" "d"
}

3-2、keys:仅遍历index

let arr = ["a","b","c","d"]
for(let item of arr.keys()){
console.log(item) // 0 1 2 3
}

3-3、entries:遍历index和值

let arr = ["a","b","c","d"]
for(let item of arr.entries){
console.log(item) // [0, "a"] [1, "b"] [2, "c"] [3, "d"]
}

最新文章

  1. GUI生成exe文件
  2. iOS开发--Block
  3. Git是如何存储对象的
  4. html第一阶段总结
  5. 20145315 《Java程序设计》实验五实验报告
  6. Android 开发之如何保证Service不被杀掉(broadcast+system/app)
  7. Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
  8. Linux进程操作信息
  9. sharepoint 2013 未能加载类型&quot;Microsoft.AnalysisServices.SharePoint.Integration.ReportGalleryView&quot;
  10. Apache Tomcat Not Showing in Eclipse Server Runtime Environments
  11. Android 应用程序窗口显示状态操作(requestWindowFeature()的应用)
  12. Zookeeper-5分钟快速掌握分布式应用程序协调服
  13. js keys方法和foreach方法区别
  14. C#之委托与事件(转载)
  15. bounding box的简单理解
  16. Linq To Object 函数介绍
  17. linux git 保存账号密码
  18. HDU 4857 逃生(拓扑排序)
  19. Mac下Homebrew的安装与使用
  20. python爬虫#网络请求requests库

热门文章

  1. 【实用小技巧】spring springmvc集成shiro时报 No bean named &#39;shiroFilter&#39; available
  2. PHP基础—PHP的数据类型与常量使用
  3. jenkins 下使用ansible 跨服务器控制操作
  4. 多种方法实现实现全排列 + sort调用标准函数库函数的简述
  5. JWT 基本使用
  6. MySQL中使用Show Profile
  7. lua编译为二进制方式
  8. sosreport -a --report
  9. tar解压某个目录 tar解压某个指定的文件或者文件夹
  10. tail -n 13 history |awk &#39;{print $2,$3,$4,$5,$6,$7,$8.$9,$10}&#39;提取第2到第11列