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

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>

控制台输出:
JavaScript for-in循环详细用法指南

文章图片
换入
循环迭代对象的属性及其原型链的属性。
【JavaScript for-in循环详细用法指南】如果我们只想显示" 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>

控制台输出:
JavaScript for-in循环详细用法指南

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

    推荐阅读