前端使用 for in 进行对象的遍历

1.遍历对象:使用for in

//对象
var test = {
    name : "zs",
    age: "18"
}

1.遍历属性名

for(key in test) {
	console.log(key);
}

2.遍历属性值

for (key in test) {
	console.log(test[key]);
}

注:遍历时,只能通过 test[value] 来获取相应属性的值,而不能使用 test.value
结果:
在这里插入图片描述

2.获取对象中所有的属性名和值

//对象
var test = {
    name : "zs",
    age: "18"
}

1.获取对象名:

Object.keys(test)    // ["name", "age"]

2.获取对象值:

Object.values(test)   // ["zs", "18"]

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

3.替换对象中的 key 值

根据 area,将 info 中的区域代码换成区域名称

let area = {
  "330100": "杭州市",
  "330200": "宁波市",
  "330300": "温州市"
};

let info = {
	"330100": {"color": "red", "num": 383},
    "330200":  {"color": "red", "num": 115},
    "330300":  {"color": "yellow", "num": 995}
};

let obj = {};  //定义一个新对象
for(key in area){
	for(key2 in info){
		if(key == key2) {
			obj[area[key]] = info[key2];
		}
	}
}


//结果
console.log(obj);
obj = {
	杭州市: {color: "red", num: 383},
	宁波市: {color: "red", num: 115},
	温州市: {color: "yellow", num: 995}
}

4.将对象转换数组

let area = {
  "330100": "杭州市",
  "330200": "宁波市",
  "330300": "温州市"
};

let areaList = [];  //定义一个新数组
for(key in area) {
	areaList.push({[key]: area[key]});
}


//结果
console.log(areaList);
areaList = [
	{330100: "杭州市"}
	{330200: "宁波市"}
	{330300: "温州市"}
];

5.for in和for of的区别

for in:遍历对象(键名)/ 数组(索引), for of遍历数组(元素值) 、遍历对象报错

for in:应用于数组循环返回的是数组的下标、数组的属性、原型上的方法和属性,
而for in应用于对象循环返回的是对象的属性名、原型中的方法和属性。

使用for in 也可以遍历数组,但是会存在以下问题:
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序
3.使用for in会遍历数组所有的可枚举属性,包括原型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值