遍历Array
可以采用下标循环,遍历Map
和Set
就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable
类型,Array
、Map
和Set
都属于iterable
类型。
具有iterable
类型的集合可以通过新的for ... of
循环来遍历。
<script>
【键-->键值】
【key-->value】
var arr=[
{
name : '余佳品',
age : "26"
},
{
name : '增利',
age : "25"
},
]
/*for in 是es5的只能拿到下标(键值)for ... in
循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array
数组实际上也是一个对象,它的每个元素的索引被视为一个属性*/
for(item in arr){
console.log(item)//0 1 下标
}
/*for ... of它只循环集合本身的元素:相当于循环的键值value*/
for(item of arr){
console.log(item)//{name: "余佳品", age: "26"} {name: "增利", age: "25"}
}
/*当然最好用的还是这个,不光可以循环键还可以循环键值 最推荐,接受三个参数,第一个是value键值 第二个是key键,第三个元素是数组本身*/
arr.forEach(function (element, index, array) {
console.log(element,'****p1') //键值 {name: "余佳品", age: "26"}age: "26"name: "余佳品"__proto__: Object "****p1"
console.log(index,'****p2') //0 1 "****p2"
console.log(array,'****p3')//(2) [{…}, {…}] "****p3" 数组自己本身
})
</script>
还有一种方法是array.map方法
const array = [1, 3, 6, 9]; const newArray = array.map( function (value) { return value + 1; }); console.log(newArray); console.log(array); |
结果:
[2, 4, 7, 10]
[1, 3, 6, 9]
1、.map()方法使用return,进行回调;其他方法可不需要。
2、.map()方法直接对数组的每个元素进行操作,返回相同数组长度的数组;其他方法可扩展数组的长度。
Array
有map()
和filter()
方法,可是Object没有这些方法,注意区别
参考:廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450082788640f82a480be8481a8ce8272951a40970000