Fork me on GitHub

js中对象数组遍历,及区别

var student = {
      name:"李四",
      age:19,
      address:"武汉"
  }

//遍历对象的属性
for(let a in student){
      console.log(a)   // name age address
}

//es6遍历对象属性
Object.keys(student)   //["name", "age", "address"]

//遍历对象的值
Object.values(student)  //["李四",19,"武汉"]
数组的迭代方法:every、filter、forEach、map、some均不能使用break或者continue进行中断循环。
var person = 
[ {name:
"小王",age:19,add:"湖北武汉"},


{name:"小李",age:99,add:"湖北随州"},
]

 for(let i = 0; i<person.length; i++ ){
     console.log(person[i])
 }
for(let a of person){
    console.log(a)     //数组中的每个对象
}

//输出的都是每个数组元素的value
for(let val of person.values()){ 
console.log(val)

 }

 //输出的都是每个数组元素的index。

 for(let index of person.keys()){ 

 console.log(index )

 }

 //配合解构使用,可以拿到元素的index和value。
 for (let [index, val] of person.entries()) {
    console.log(index, val);
 }


person.forEach(当前元素对象,当前元素索引,当前元素所在的数组){}

//map对数据中的每项进行操作返回一个新的数组,不会改变原数组
结果: ["我来自{item.add}", "我来自{item.add}"]
var newPerson = person.map((item,index,arr)=>{
   return `我来自{item.add}`       //
})

//filter 返回当前符合条件的新数组,不会改变原数组
var newData = person.filter(item=>{
return item.name =='小王'
})

//find返回数据中符合条件的一个对象,都没有符合就返回undefiend
var findData = person.find((item)=>{
return item.age > 18
})

//findIndex 返回数组中符合条件的元素索引,没有就返回-1

  var findIndex = person.findIndex(item=>{
     return item.age === 19
  })

 
//every检查数组中是否都符合,符合true  some检查数组中的是否有符合条件的有true

   var everyData = person.every(item=>{
      return item.age >= 99
    })

    var someData = person.some(item=>{
      return item.age >= 99
    })

 

 






 

posted @ 2020-11-13 17:26  欢欢11  阅读(408)  评论(0)    收藏  举报