先定义下面示例中要用到的对象和数组:
const obj = {a:1,b:2,c:3}
const arr1 = ["apple", "orange", "banana", "strawberry"]
const arr2 = [1, 2, 3, 4]
-
for
-
for in
-
for of
for in 和 for of 的区别:
for in是遍历key,for of是遍历value。
for in是简单遍历,以任意顺序迭代对象的可枚举属性,for of可以遍历可迭代对象,定义要迭代的数据(非自定义属性)。 -
while
-
do while
var k = 2
do {
console.log(arr1[k]); //banana
k--
}
while (k <= 0)
- Array.forEnch():遍历数组全部元素,利用回调函数对数组进行操作,不会返回新的数组,return只用于控制循环是否跳出当前循环。
- Array.map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
var arr3 = arr2.map((item, index, arrlist) => {
return item * 2 // item, index, arr 数组元素,索引,原数组
})
console.log(arr3); // [2, 4, 6, 8]
- Array.filter():返回通过过滤条件的元素,不改变原来的数组。
var arr4 = arr2.filter((item, index, arrlist) => {
return item % 2 == 0
})
console.log(arr4); //[2, 4]
- Array.some():测数组中的元素是否满足指定条件,有一个满足则返回true。
var rs1 = arr2.some((item, index, arrlist) => {
return item < 2
})
console.log(rs1); //true
- Array.every():测数组中的元素是否满足指定条件,全部满足则返回true。
var rs2 = arr2.every((item, index, arrlist) => {
return item < 2
})
console.log(rs2); //false
- Array.reduce():具体规则是由回调函数决定的,每次的运算会涉及两项,把前一轮运算的结果作为当前运算的前一项。返回最后结果。
var rs3 = arr2.reduce((prev, next) => {
return prev / next
})
console.log(rs3); //0.041666666666666664
- Array.reduceRight(): 和 reduce() 功能是一样的,它是从数组的末尾处向前开始计算。
var rs4 = arr2.reduceRight((prev, next) => {
return prev / next
})
console.log(rs4); //0.6666666666666666