JS数组循环遍历⽅法的对⽐
以下介绍⽐较简单,最好把代码复制到控制台敲⼀遍
原⽣for
var arr = [1,2,4,6]
for(var i = 0, len = arr.length; i < len; i++){
console.log(arr[i])
}
forEach 语句
var arr = [1,5,8,9]
arr.forEach(function(item) {
console.log(item);
})
for-in 语句
⼀般会使⽤for-in来遍历对象的属性的,不过属性需要 enumerable,才能被读取到.
(关于enumerable,参见我的另⼀篇博客)
var obj = {
name: 'test',
color: 'red',
day: 'sunday',
number: 5
}
for (var key in obj) {
console.log(obj[key])
js数组方法总结
}
for-of 语句 (ES 6)
for-of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建⼀个迭代循环
var arr = [{name:'bb'},5,'test']
for (item of arr) {
console.log(item)
}
map ⽅法 (不改变原数组)
map ⽅法会给原数组中的每个元素都按顺序调⽤⼀次 callback 函数,callback 每次执⾏后的返回值(包括 undefined)组合起来形成⼀个新数组。
var arr = [1,2,3]
var firearr = arr.map(current => current * 5)
reduce ⽅法
让数组中的前项和后项做某种计算,并累计最终值
var wallets = [4,7.8,3]
var totalMoney = duce( function (countedMoney, wallet) {
return countedMoney + ;
}, 0)
filter ⽅法 (不改变原数组)
通过 callback 测试的元素会被跳过,不会被包含在新数组中。筛选出过滤出数组中符合条件的项,组成新数组.
var arr = [2,3,4,5,6]
var morearr = arr.filter(function (number) {
return number > 3
})
every ⽅法
当且仅当数组每⼀项都满⾜callback⾥的条件时该⽅法才返回true
var arr = [1,2,3,4,5]
var result = arr.every(function (item, index) {
return item > 0
})
some ⽅法
数组任意⼀项满⾜callback⾥的条件时该⽅法都返回true
var arr = [1,2,3,4,5]
var result = arr.some(function (item,index) {
return item > 3
})
性能排序
for > for-of > forEach > filter > map > for-in

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。