方法1 -- for
var arr = [1,2,3,4,5,6,7,8,9]
for(var i = 0; i<arr.length;i++){
console.log(arr[i])
}
方法2 -- for...in
var arr = [1,2,3,4,5,6,7,8,9]
for(var i in arr){
console.log(arr[i])
conosle.loh(arr[i] + '/' + i) // 还可以添加新属性
}
方法3 -- for...of
var arr = [1,2,3,4,5,6,7,8,9]
for(var i of arr){
console.log(i)
}
for...in 和 for...of 两者的主要区别在于他们的迭代方式
推荐
在循环对象属性的时候使用for in
在遍历数组的时候使用for of
- for...in 循环出来的是key, for...of循环出来的是value
- for...in 是ES5 标准,for...of 是ES6标准,兼容性可能存在些问题,请注意使用
- for...of 不能遍历普通的对象,需要和Object.keys() 搭配使用
方法4 -- forEach
/* forEach方法:被传递给forEach的函数会在数组的每个元素上执行一次,元素作为参数传递给该函数 */
var arr = [1,2,3,4,5,6,7,8,9]
arr.forEach(function(element,index){
console.log(element)
console.log(element + '/' + index)
})
【!注意!】未赋值的值是不会在forEach循环迭代的,但是手动赋值为undefined的元素是会被列出的
var arr = [1,,3,undefined,5,6,7,8,9]
arr.forEach(function(element,index){
console.log(element + '/' + index)
})
方法5 -- map
map 遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组
var arr = [1,2,3,4,5,6,7,8,9]
var arr2 = arr.map(function(item){
console.log(item )
})
方法6 -- filter
filter()返回一个包含所有在回调函数上返回为true的元素新数组,回调函数在此担任的是过滤器的角色,当元素符和条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素
var arr = ['aaa','bbb','ccc',1,2,3]
var arr2 = arr.filter(function(item){
if(typeof item == 'number'){
return item;
}
})
console.log(arr2);
方法7 -- every
every() 当数组中的每一个元素在callback上被返回true时就返回true(注意:要求每一个单元项都返回true时才为true)
var arr = ['aaa','bbb','ccc',1,2,3]
var bol = arr.every(function(element){
if(typeof element == 'string'){
return element;
}
})
console.log(bol); //false
every()与filter()的区别是:后者会返回所有符合过滤条件的元素;前者会判断是不是数组中的所有元素都符合条件,并且返回的是布尔值
方法8 -- some
some()只要数组中有一项在callback上就返回true
var arr = ['aaa','bbb','ccc',1,2,3]
var arr = ["first","second",'third' ,"fourth",3,5,8];
var bol = arr.some(function(element){
if(typeof element == 'string'){
return element;
}
})
console.log(bol); //true
every()与some()的区别是:前者要求所有元素都符合条件才返回true,后者要求只要有符合条件的就返回true
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。