[JS] 코드로 알아보는 각종 순회 방법

sunaaa·2021년 8월 19일
1

JavaScript

목록 보기
8/8

객체 순회하기

객체의 Key값으로 순회하기: for in

const object = {'a': 1, 'b': 2, 'c' : 3};
for(let x in object) {
  console.log(x)
}

// result: 'a' 'b' 'c'

객체의 Key값 배열로 반환하기:Object.keys(object)

const object = {'a': 1, 'b': 2, 'c' : 3};
Object.keys(object) 
// ['a' 'b' 'c']

객체의 value값으로 순회하기: for of Object.values(object)

const object = {'a': 1, 'b': 2, 'c' : 3};
// Object.values(object): [ 1, 2, 3 ]
for(let x of Object.values(object)) {
  console.log(x)
}
// result: 1 2 3

객체의 key, value값으로 순회하기: for of Object.entries(object)

const object = {'a': 1, 'b': 2, 'c' : 3};
// Object.entries(object): [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]

for (const [key, value] of Object.entries(object)) {
  console.log(key, value);
}

// result: 'a' 1 'b' 2 'c' 3

이차원 배열 순회하기

이차원 배열이 정사각형이 아닌 직사각형인 경우 고려하여 작성하였음

이차원 배열 / 정방향 순회

const arr = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]];
const result = [];
for(let i=0; i<=arr.length-1; i++) {
  for (let j = 0; j<=arr[i].length-1; j++) {
    result.push(arr[i][j])
  }
}

// result: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]

이차원 배열 / 지그재그 순회

// ➡ ⬅ 순으로 지그재그로 출력하기
for (let i = 0; i<=arr.length-1; i++) {
  for (let j = 0; j<=arr[i].length-1; j++) {
    if (i % 2) {
      result.push(arr[i][arr[i].length-1-j])
    } else {
      result.push(arr[i][j])
    }
  }
}
// result: [ 1, 2, 3, 6, 5, 4, 7, 8, 9, 12, 11, 10 ]

이차원 배열 / 열 우선 순회 정방향

const arr = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]];
const result = [];

for (let j = 0; j<=arr[0].length-1; j++) {
  for(let i=0; i<=arr.length-1; i++) {
    result.push(arr[i][j])
  }
}
// result: [ 1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 12 ]

이차원 배열 / 열 우선 순회 역방향

const arr = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]];
const result = [];
for (let j = arr[0].length-1; j>= 0; j--) {
  for(let i=arr.length-1; i>=0; i--) {
    result.push(arr[i][j])
  }
}
// result: [ 12, 9, 6, 3, 11, 8, 5, 2, 10, 7, 4, 1 ]
profile
Be Playful Front-end Developer

0개의 댓글