如何识别for..in循环中的第一次迭代

kar*_*njo 7 javascript

我们有一个这样的循环:

for (var prop in obj) {
   if (obj.hasOwnProperty(prop) {
      // Here need operation only for first iteration (1)
      // Other operations
   }
}
Run Code Online (Sandbox Code Playgroud)

我们如何识别(1)中的第一次迭代?

use*_*ica 13

如果可以,将其移出循环:

do_one_time_thing();
for (var prop in obj) {
   if (obj.hasOwnProperty(prop)) {
      // Other operations
   }
}
Run Code Online (Sandbox Code Playgroud)

否则,设置一个标志,并在第一次迭代后降低它:

var first_iteration = true;
for (var prop in obj) {
   if (obj.hasOwnProperty(prop)) {
      if (first_iteration) {
          do_one_time_thing();
          first_iteration = false;
      }
      // Other operations
   }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用forEach

array.forEach((element,index) => {
    if(index==0){
        // first element
        }else{
          // not first element  
        }
      });
Run Code Online (Sandbox Code Playgroud)


Pau*_*oub 5

由于没有循环计数器,您需要自己跟踪:

var first = true;

for (var prop in obj) {
   if (obj.hasOwnProperty(prop) {
      if (first) {
        first = false;
        // Here need operation only for first iteration (1)
      }
      // Other operations
   }
}
Run Code Online (Sandbox Code Playgroud)