- for,forEach,for in,for of的使用及区别
- filter,map的使用及区别
- includes,find的使用及区别
- some,every的使用及区别
- reduce的使用及常见用法
var arr = [1,2,3,4,5];
arr.p = 'private'
for
for(let i = 0;i
1、for循环不到数组的私有属性
2、可以使用return|break|continue终止|结束循环
3、for属于编程式写法
forEach
arr.forEach((item)=>{
console.log(item);
})
1、forEach循环不到数组的私有属性
2、return|break|continue不起作用
3、forEach属于声明式写法,不关心具体实现
for in
for(let key in arr){
console.log(key)
}
1、可以遍历到数组私有属性的值
2、key的类型是string型
3、可以使用return|break|continue终止|结束循环
4、循环顺序不一定按照数组索引值来循环
for of
for(let val of arr){
console.log(val);
}
filter,map1、不可以遍历数组的私有属性的值
2、val的值就是arr项的值
3、可以使用return|break|continue终止|结束循环
| 方法名 | filter | map |
|---|---|---|
| 是否操作原数组 | 不会 | 不会 |
| 返回结果 | 过滤后的新数组 | 新数组 |
| 回调函数的返回结果 | 如果返回true这一项放到新数组中 | 回调函数中返回什么这一项就是什么 |
filter
[1,2,3,4].filter((item)=>{
return item>3
})
map
var li = [1,2,3,4].map((item)=>{
return ` var arr = [1,2,3,4,5];
arr.inclueds(7);//arr数组里有7吗?没有返回false
find
var arr = [1,2,3,4];
var result = arr.find(function(item,index){
return item.toString().indexOf('5')>-1
})
// result:undefined
var result2 = arr.find(function(item,index){
return item.toString().indexOf('2')>-1
})
//result2:2
some&every1、回调函数中返回true停止循环并返回那一项的值,未找到返回undefined
2、不改变原数组
var arr = [1,2,3,4,5];
var someArr = arr.some(function(item){
return item>3
});
//someArr : true
var everyArr = arr.every(function(item){
return item<0
});
//everyArr:false
reduce:不改变原数组值some:找true,找到true后停止循环,返回true,找不到返回false
every:找false,找到false后停止循环,返回false。找不到返回true
(os:这俩真是一对儿)
var arr = [1,2,3,4,5];
arr.reduce(function(prev,next,index,item){
console.log(arguments)
})
求数组的累加和:[1,2,3,4,5,…,100]
var arr = [1,2,3,4,5,...,100];
arr.reduce(function(prev,next){
return prev+next;//本次的返回值会作为下次的prev的值
})
已知数组:[{price:30,count:1},{price:20,count:2},{price:40,count:3}]
求:price*cout的各项累加和
var arr = [{price:30,count:1},{price:20,count:2},{price:40,count:3}]
let sumArr = arr.reduce(function(prev,next){
return prev+next.price*next.count
},0);//默认指定第一次prev的值为0
多维数组转一维数组
[[1,2,3],[2,3,4],[5,7,8]];
var arr = [[1,2,3],[2,3,4],[5,7,8]];
var newArr = arr.reduce(function(prev,next){
return prev.concat(next)
});
console.log(newArr);
但是如果数组长这个样子要怎么转一维数组且去重呢,一起来思考一下吧?
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
终于过完年了,新年第一篇总结,数组的常用方法及其区分~
2019常翻看常总结



