javascript sort 사용해서 숫자 정렬

Jaehyeong Kim·2023년 3월 3일
0
function biggestNumberInArray(arr) {
  arr.sort().reverse();
  if (arr.length === 0) {
    return 0;
  } else {
    let newarr = [];
    arr.map(function (a) {
      if (typeof(a) === "number") {
        newarr.push(a);
      }
    });
    return newarr[0];
  }
}

위와 같이 array 중 가장 큰 숫자를 return 하는 함수를 작성하였는데

const array = [-1,0,3,100, 99, 2, 99] // should return 100
const array2 = ['a', 3, 4, 2] // should return 4
const array3 = [] // should return 0

위 array 에 적용시키자 첫번째에서 99가 나왔다. 도무지 뭐가 문제인지 알 수 없었으나 검색해보니 javascript에서 sort는 모두 문자취급을 하기때문에 99가 100보다 큰 것으로 취급한다는 사실을 알게되었다.

array.sort((a,b)=>a - b);

구글링을 해보니 위와 같이 람다 함수를 써주어야 두 수를 비교함으로써 숫자 순서대로 배열할 수 있다고한다.

추가
chatgpt에게 물어보니 내거보다 훨씬 깔끔하고 출제 의도에 맞는듯한 코드를 짜주었고, 실제 정답도 이와 비슷했다..ㅜㅜ

function biggestNumberInArray3(arr) {
  let highest = -Infinity;
  for (item of arr) {
    if (highest < item) {
      highest = item;
    }
  }
  return highest === -Infinity ? 0 : highest;
}

0개의 댓글

관련 채용 정보