JavaScript for-in循环详细用法指南

2021年3月11日17:00:45 发表评论 911 次浏览

JavaScript中的for-in循环用于迭代对象的属性。如果我们要显示对象的内容, 它可能是一个很棒的调试工具。 for-in循环仅在其可枚举属性设置为" true"的对象的那些键上进行迭代。对象中的键值具有四个属性(值, 可写, 可枚举, 可配置)。设置为" true"时可枚举意味着我们可以迭代该属性。你可以在以下内容的属性属性部分中了解有关四个关键属性的信息:JavaScript中的对象。阅读更多有关枚举的信息JavaScript中的可枚举属性.

要点:

  • 使用换循环遍历非数组对象。即使我们可以使用换为数组循环, 通常不建议这样做。而是使用对于循环遍历数组。
  • 迭代的属性换循环还包括位于原型链.
  • 属性的迭代顺序可能与对象中定义的属性不匹配。

语法如下:

for (let i in obj1) {
  
     // Prints all the keys in
     // obj1 on the console
     console.log(i);
}

例子:

<script>
     const courses = {
  
         // Declaring a courses object
         firstCourse: "C++ STL" , secondCourse: "DSA Self Paced" , thirdCourse: "CS Core Subjects"
     };
  
     // Creating a new empty object with
     // prototype set to courses object
     const student1 = Object.create(courses);
  
     // Defining student1 properties and methods
     student1.id = 123;
     student1.firstName = "Prakhar" ;
     student1.showEnrolledCourses = function () {
         console.log(courses);
     }
  
     // Iterating over all properties of
     // student1 object
     for (let prop in student1) {
         console.log(prop + " -> " 
             + student1[prop]);
     }
</script>

控制台输出:

对于循环

换入

循环迭代对象的属性及其原型链的属性。

如果我们只想显示" student1"对象的属性, 而该对象仅属于该对象而不是原型链, 则可以使用" if"检查

hasOwnProperty()方法

.

<script>
  
     // Iterating over only those properties
     // of student 1 object which is not on
     // its prototype chain
     for (let prop in student1) {
         if (student1.hasOwnProperty(prop)) {
             console.log(prop + " -> " 
                     + student1[prop]);
         }
     }
  
</script>

控制台输出:

对于循环-hasOwnProperty

与for循环hasOwnProperty检查, 遍历对象的属性。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: