각 패스스루를 나타내는 루프를 시작한다. 루프는 변수 i를 사용해 array의 각 값을 가리키며 끝에서 두 번째 값까지 살펴본다.
for(let i = 0; i < array.length - 1; i++) {
마지막 값을 시작하기 전에 이미 배열이 완전히 정렬되므로 마지막 값은 보지 않아도 된다.
이어서 현재까지의 최솟값이 들어 있는 인덱스를 저장한다.
let lowestNumberIndex = i;
lowestNumberIndex는 첫 패스스루를 시작할 때는 0, 두 번째 패스스루를 시작할 때는 1일 것이다.
특별히 인덱스를 저장하는 이유는 나머지 코드에서 최솟값과 그 인덱스를 모두 사용해야 하기 때문이고 인덱스를 사용하면 둘 다 참조할 수 있다(array[lowestNumberIndex]를 호출해 최솟값을 확인할 수 있다).
각 패스스루에서는 배열의 나머지 값들을 확인해 현재 최솟값보다 더 작은 값이 있는지 알아본다.
for(let j = i + 1; j < array.length; j++) {