JavaScript 自學筆記15

1. for...in 循環

(1). 格式:

  • for (const propertyName in object) { //statement; };

如:let animal = {

name: 'duck',

age: 3

};

for (let prop in animal) {

console.log(prop + ' : ' + animal[prop]);

}; // name: cat age: 3

(2). for...in 循環既會遍歷本對象的屬性,同時也會遍歷已繼承的父對象的屬性。

如:let animals = {mammals:‘carnivora’};

let cat = Object.create(animals);

cat.name = 'cat';

for (const prop in cat){

console.log(prop);

}; // name mammals

  • 如果不想同時遍歷父對象的屬性,可以使用hasOwnProperty()方法。hasOwnProperty()方法只會將屬於自己對象的屬性返回為真,父對象的屬性則返回為假。

如:for (const prop in cat){

if (cat.hasOwnProperty(prop))

console.log(prop);

}; // name

console.log(cat.hasOwnProperty('mammals')); // false

(3). for..in 循環在數組中的應用

注意事項:

  • 遍歷順序有可能不是按照實際數組的内部順序。所以,如果對遍歷結果的順序有要求的話,不要使用for..in循環。
  • 索引(即,key)為字符串型的數字,并不能直接進行幾何運算。

2. Object.values()方法

ES2017引入了Object.values()方法來遍歷屬性的值,並將所有屬性的值返回到一個數組中。

(1). Object.values()的語法:

  • Object.values(obj)

如:let duck = {

name: 'Sweetie',

age:3

};

console.log(Object.values(duck)); // [''Sweetie'', 3]

(2). 與for...in循環相比Object.values()的好處在於它只會返回本對象的屬性值。而for...in循環不僅會遍歷本對象的屬性,還會遍歷父對象的屬性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值