Why did the for-of-loop not finish, jump to start console.log?

runtime

  • Visual Studio Code v1.15.1 native compiler
  • Node.js v8.2.1
  • OS: Windows 10

Description

I want to add "After sorting:" between the original arry and sort arry, they look like this: CONSOLE Screenshot 1

But the console sometimes shows: CONSOLE Screenshot 2

Why did the for-of-loop not finish, jump to start console.log? Source:

// Random to generate double digits.
function getRandom() {
  return Math.round(Math.random() * 100);
}
// Writing data to the array.
var score = [
  ["a", getRandom()],
  ["b", getRandom()],
  ["c", getRandom()],
  ["d", getRandom()],
  ["e", getRandom()]
];
console.log("Before sort:");

// Print source arry
for (let m of score) {
  console.log(m);
}

// Call sort()
score.sort((a, b) => {
  return b[1] - a[1];
});
console.log("After sort:");

// Print sort arry.
for (let n of score) {
  console.log(n);
}
+6
source share
1 answer

, , - , , -

// Random to generate double digits.
   function getRandom() {
     return Math.round(Math.random() * 100);
    }
   // Writing data to the array.
   var score = [
   ["a", getRandom()],
   ["b", getRandom()],
   ["c", getRandom()],
   ["d", getRandom()],
   ["e", getRandom()]
  ];
  console.log("Before sort:");
  setTimeout(function(){
      // Print source array
      for (let m in score) {
        console.log(m);
       }

      // Call sort()
     score.sort((a, b) => {
         return b[1] - a[1];
     });
     console.log("After sort:");
     for (let n in score) {
       console.log(n);
     }
  },300);
-1

All Articles