NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Web javascript에서 C# 처럼 배열의 첫번째 요소(first)를 가져올 수 있는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. C#은 배열을 탐색할 때 First, FirstOrDefault와 같이 인덱스가 아닌 메소드로 첫번째 값을 가져올 수 있습니다. 물론, 인덱스도 되고 Last, LastOrDefault와 같은 메소드도 있습니다. 이게 생각보다 참 편리하죠^^; 자바(Java)나 파이썬(Python), 자바스크립트(Javascript)와 같은 언어들도 비슷하게 사용할수는 있습니다. 요즘 대부분의 언어들이 람다(Lambda)식을 지원하기 때문에 이걸 이용해도 됩니다.

     

    자바스크립트에서 배열의 첫번째 요소 가져오기.

    일반적으로 모든 언어가 이와 같은 방식으로 배열의 첫번째 요소를 가져옵니다.

    yourArray[0]

     

    이를 위해서는 0번째 인덱스에 요소가 실제로 존재하는지 확인해야 합니다. 원래 배열에 신경 쓰지 않고, 인덱스가 있는지 확인하고 싶지도 않을 때가 많습니다. 단 몇줄이지만 이를 체크하기가 귀찮기 때문이죠. 이 경우 shift() 메소드를 사용하여 첫 번째 요소를 가져올 수 있지만, 이 메서드는 원래 배열을 수정합니다. 첫 번째 항목을 제거하고 반환합니다. 따라서 배열의 길이가 1만큼 줄어듭니다. 이 방법은 첫 번째 요소만 가져와야 하지만 원래 배열은 신경 쓰지 않는 인라인 경우에 사용할 수 있습니다.

    yourArray.shift()

     

    delete yourArray[0] 와 같이 첫 번째 요소가 삭제된 경우가 있습니다. 배열에 빈공간이 남습니다. 이제 [0]의 요소는 정의되지 않았지만 첫 번째 삭제되기 전 요소를 가져오려고 합니다. 실제로 현업에서 일하다보면 이런 실수를 자주 접하게 됩니다. 따라서 배열과 첫 번째 키에 대한 확신이 없다면(배열의 길이나 빈 공간인지...) 다른 방법을 사용할 수 있습니다. find() 를 사용 하여 첫 번째 요소를 가져올 수 있습니다. find() 의 장점은 조건을 충족하는 첫 번째 값에 도달할 때 루프를 종료합니다. find() 의 강력한점은 null 또는 기타 빈 값도 제외하도록 조건을 사용자 정의할 수 있습니다.

    var firstItem = yourArray.find(x => x !== undefined);

     

    마지막으로 filter() 를 사용하면 배열의 복사본을 만들고, 이 후 처리를 별도로 할 수 있습니다. 첫번째 배열 가져오기에 filter()를 포함하는 이유는 find() 이전에 존재했고, 많은 프로그래머가 filter() 를 사용하여 개발했기 때문입니다. ES6에서는 find() 를 사용하는게 더 좋은 방법입니다. 이외에도 forEach, for 반복기를 사용해서 처리해도 됩니다. 사실, 이 주제에 정답은 없고 효율의 문제만 남습니다. 순차 실행이나 동기화가 중요한 동작이라면 find() 나 filter() 를 사용하는게 좋습니다. 한가지 더~ find() 는 조건(if)에 사용도 가능합니다.

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.