遍历数组的方法以及遍历对象的键值对方法

一、遍历数组的方法

1、经典的for循环
let arr = ['apple','boy','cat','dog'];
for(let i=0;i<arr.length;i++){
    console.log(i);
}
2、for in
//index表示数组的下标
let arr = ['apple','boy','cat','dog'];
for(index in arr){
    console.log(index + " " + arr[index]);
}

输出结果:
在这里插入图片描述

3、for of
//value 表示数组的值
let arr = ['apple','boy','cat','dog'];
for(value of arr){
    console.log(value);
}

输出结果:
在这里插入图片描述

4、forEach()
let arr = ['apple','boy','cat','dog'];
arr.forEach((item,index) =>{
    console.log(index + "---" + item);
})

输出结果:
在这里插入图片描述

5、map() : return得到一个新数组,不影响原数组
let arr = ['apple','boy','cat','dog'];
newArr = arr.map((item,index) => {
    console.log(index + "---" + item);
    return 99+item;
})
console.log(arr);
console.log(newArr);

输出结果:
在这里插入图片描述

二、循环遍历对象

1、for in : 不仅可以遍历数组,也可以遍历对象
//key 代表对象中的键值key
let obj = {
	name:"Greg",
    age:20,
    job:"student"
};
for(key in obj){
    console.log(key + " " + obj[key]);
}

输出结果:
在这里插入图片描述

2、Object.keys(obj), Object.values(obj), Object.entries(obj) : 返回对象的所有可枚举属性的字符串数组
let obj = {
	name:"Greg",
    age:20,
    job:"student"
};
console.log(Object.keys(obj));
console.log(Object.values(obj));
console.log(Object.entries(obj));

输出结果:
在这里插入图片描述

3、Object.getOwnPropertyNames(obj) : 返回一个对象key键值的数组,包含对象自身的所有属性(包含不可枚举属性)
let obj = {
	name:"Greg",
    age:20,
    job:"student"
};
console.log(Object.getOwnPropertyNames(obj));
Object.getOwnPropertyNames(obj).forEach(key => console.log(key + " " + obj[key]));
三、思考:let test = [{name:“Greg”,age:18},{name:“Nich”,age:30},{name:“John”,age:12}]
如何获取到数组对象中的age值?并且将age按从小到大排序?
1、如何获取到数组对象中的age值
let test = [
  {name:"Greg",age:18},
  {name:"Nich",age:30},
  {name:"John",age:12}
];
for(item of test){
  console.log(item.age);
}
思路:数组循环遍历出item对象,再用遍历对象的方法循环遍历出键值key
2、将age按从小到大排序
let test = [
  {name:"Greg",age:18},
  {name:"Nich",age:30},
  {name:"John",age:12}
];
function compare(property){
  return function(a,b){
    let pev = a[property];
    let cur = b[property];
    return pev - cur;
  }
  
}
test.sort(compare("age"));
console.log(test);

输出结果:
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值