[javascript] 객체에서 마지막 인덱스 찾는법 (findIndex 뒤에서부터 적용하기)

2022. 2. 22. 17:50·과거의 이력/javascript

특정 조건을 만족하는 인덱스를 뽑아야 한다.

 

배열을 대상으로 할 경우 lastIndexOf() 를 사용하면 쉽게 찾아지지만,

배열안에 객체형태로 되어있는경우는 예외이다.

 

 

 

만약 다음과같은 데이터를 가진 arr 변수가 있다고 할때

나는 name이 jeongmin인 객체의 마지막 인덱스을 구하고싶다.

        let arr = [{ 'name': 'jeongmin', 'job': null },
          { 'name': 'kim', 'job': 'dancer' },
          { 'name': 'lee', 'job': 'actor' },
          { 'name': 'jeongmin', 'job': 'developer' }]

 

 

 

해당 경우에 만약 아래 로직처럼 findIndex를 사용하게 된다면 조건을 만족하는 첫번째 값을 반환한다.

let firstIdx = arr.findIndes((param) => { return param.name === 'jeongmin' };

console.log(firstIdx);


// 출력값
>> 0

 

 

 

하지만 나는 조건을 만족하는 가장 마지막 인덱스를 가지고오고싶다.

해당 메소드를 찾을수가 없어 직접 구현해보았다.

const lastIdx = arr.reduce((acc, cur, idx) => {
                    if (cur['name'] === 'jeongmin') {
                    	acc = idx
               		}
                 	return acc
            	}, null)
            
console.log(lastIdx);

// 출력값
>> 2

 

 

 


 

 

 

여기서 사용한 reduce는 누산기라고도 하며 아래 링크에 정리해두었다.

https://pro-jm.tistory.com/51?category=1064701 

 

[javascript] 누산기 reduce 알아보기 (알고리즘 자주출몰)

알고리즘 문제에 많은 사람들이 풀이법으로 reduce를 많이 사용하고있다. for문이나 카운트를 위해 별도 변수를 선언하지 않아도 아웃풋을 출력해낼 수 있기때문에 코드가 훨씬 직관적인것 같다.

pro-jm.tistory.com

 

'과거의 이력 > javascript' 카테고리의 다른 글

[javascript] 자바스크립트 구조분해할당 (직관적인 코드를 짜는법)  (0) 2022.02.28
[javascript] 자바스크립트 소팅 sort() (큰수가 먼저 정렬되는 이유..?)  (0) 2022.02.28
[javascript] Converting circular structure to JSON (JSON 형태 배열 로그 찍는법)  (0) 2022.02.22
[javascript] Map 알아보기 (set, get 메소드 사용하기)  (0) 2022.02.15
[javascript] 누산기 reduce 알아보기 (알고리즘 자주출몰)  (0) 2022.02.15
'과거의 이력/javascript' 카테고리의 다른 글
  • [javascript] 자바스크립트 구조분해할당 (직관적인 코드를 짜는법)
  • [javascript] 자바스크립트 소팅 sort() (큰수가 먼저 정렬되는 이유..?)
  • [javascript] Converting circular structure to JSON (JSON 형태 배열 로그 찍는법)
  • [javascript] Map 알아보기 (set, get 메소드 사용하기)
정많이 정만이
정많이 정만이
jeongmany
  • 정많이 정만이
    정많이 정만이
    정많이 정만이
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • 과거의 이력 (71)
        • CS (12)
        • 프론트엔드 (4)
        • javascript (21)
        • Vue.js (7)
        • bootstrap (1)
        • [그리드] ag-grid (3)
        • [그리드] vue-grid-layout (1)
        • HTML_CSS (5)
        • NPM (1)
        • [차트]highcharts (0)
        • JAVA (9)
        • 백엔드 (1)
        • 기본개념 (손필기) (5)
        • 프로그래머스 (1)
      • 알고리즘 (6)
      • 통계 (9)
        • 통계지식 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    우분투
    selectbox
    ES6
    자바스크립트
    ubuntu설치
    webpack.config.js
    버추얼박스
    js map
    HTML
    Webpack
    공유메모리
    CSS
    JavaScript
    객체
    java
    ag-grid
    cs
    vuejs
    bootstrap
    ubuntu
    VirtualBox
    js
    반복문
    개발자
    코딩테스트
    vue.js
    vue.config.js
    aggrid
    vue
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정많이 정만이
[javascript] 객체에서 마지막 인덱스 찾는법 (findIndex 뒤에서부터 적용하기)
상단으로

티스토리툴바