Javascript

[Javascript] array / array method / sorting 예제

nang. 2020. 4. 18. 16:39
반응형
SMALL

array

  • 배열의 데이터 타입은 object

1. 배열 사용

  1. let array = [10, 40, 20, 50, 60];
let array = [];
  • 배열 객체
let array = [
    {},
    {}
]; 

2. 배열 크기 (for)

array.length



예제

  • 최대값 / 최소값 구하기
    • Math 사용
      • Math.max(10, 20);
    • for문 사용

코드 보러가기

<!DOCTYPE html>
<html>
    <head>
        <script>
                let array = [52, 64, 80, 32 ,11];
                console.log(Math.max(50, 30)); // 50

                let max = 0;
                let min = 100000;

                for (let i=0; i < array.length; i++){
                    if (max < array[i]){
                        max = array[i];
                    }
                    if (min > array[i]){
                        min = array[i];
                    }
                }

                console.log(max); // 80
                console.log(min); // 11

        </script>
    </head>
</html>



결과

결과1





3. array method

3.1 pop()

배열의 마지막 값 꺼내기

  • 배열의 마지막 요소를 제거하고 리턴
  • 객체 자체 변화 (아예 변화)

예제1

// length가 pop 될 때마다 동적으로 바뀌기 때문에 문제 발생
for(let i = 0; i < students.length; i++) {
    console.log(students.pop());
}
  • ** 문제 발생!
    • pop 될 때마다 배열의 길이는 줄어든다. 객체 자체 변화이기 때문에
    • 아래 예제2처럼 해결한다.

예제2

// 정적 변수로 선언 후 사용
let totalLength = students.length;

for(let i = 0; i < totalLength; i++) {
    console.log(students.pop());
}
  • 배열의 길이를 따로 변수로 선언하여 고정시켜놓고 사용한다.

3.2 push()

배열에 값 추가하기

  • 배열의 마지막 부분에 새로운 요소 추가
  • 객체 자체 변화 (아예 변화)

3.3 slice()

  • 배열에서 지정한 부분을 리턴

3.4 splice()

  • 배열에서 지정한 부분을 삭제하고 삭제한 요소 리턴
  • 객체 자체 변화

3.5 sort()

  • 배열 요소 정렬
  • 객체 자체 변화
  • 숫자 오름차순이 아니라 문자열 오름차순!
    • 53, 103 >> 103, 53

3.5.1 오름차순 (오레라)

  • left - right
<배열>.sort(function(left, right) {
    return left.<변수> - right.<변수>;
});

3.5.2 내림차순

  • right - left
<배열>.sort(function(left, right) {
    return right.<변수> - left.<변수>;
});

예제

// 오름차순
students.sort(function(left, right) {
   return left.sum() - right.sum();
});

// 내림차순
students.sort(function(left, right) {
   return right.sum() - left.sum();
});
반응형
LIST