2018.6.28——循环遍历

// 循环遍历
const arr1 = [1,2,5,4,6,8,99,88,52,624]
const obja = {a: 1,b: 2,c: 3}
const str = "stringThings"
/*
for 语句用于创建一个循环,它包含了三个可选的表达式,三个可选的表达式包围在圆括号中并由分号分隔,
 后跟一个在循环中执行的语句
 最原始的写法就是for循环
 */
for (var i = 0; i < arr1.length; i++) {
    console.log("for",i,arr1[i])
}

/* 
for...in 循环只遍历可枚举属性,。
像 Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性
for in遍历的是数组的索引(即键名)
*/
for(item in arr1){
    console.log("for-in",item)
}
for(item in obja){
    console.log("for-in",item)
}
/* for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)
上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
*/
for(var item of arr1){
    console.log("for-of",item)
}
for (var item of str){
    console.log("string遍历for-of",item)
}
for (var key of Object.keys(obja)){
    console.log("keys:",key,obja[key])
}
/*数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱
forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度
缺点:这种写法的问题在于,无法中途跳出forEach循环,break命令或return命令都不能奏效。
*/
arr1.forEach((value,index) => {
  console.log("forEach",index,value)
})

// jQuery框架的each循环
$.each(arr1,function (i,v) {
    console.log("$.each",i,v)
})
$.each(obja,function (i,v) {
    console.log("$.each",i,v)
})
/*这种方式也是用的比较广泛的,虽然用起来比较优雅,但实际效率还比不上foreach
map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变,不能遍历对象
*/
arr1.map((item,index) => {
    console.log("map",index,item)
})


// https://www.cnblogs.com/ihboy/p/6878427.html
var arr2 = ["2",66,88,true,"good","efefef","test"]
//  4. filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变
var ff = arr1.filter(function (i) {
    return i > 10
})
console.log("filter——",ff)
//  5. some函数,遍历数组中是否有符合条件的元素,返回Boolean值
var ss = arr2.some(function (i) {
    return i === 'number'
})
console.log("some——",ss)
//  6. every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值
var ee = arr2.every(function (i) {
    return i === 'number'
})
console.log("every——",ee)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值