logo

객체 오름차순 정렬, 객체 같은지 비교

  • 객체 오름 차순 정렬
function sortObjectByKeys(obj) {
    return Object.keys(obj)
        .sort() // 키를 오름차순으로 정렬
        .reduce((sortedObj, key) => {
            sortedObj[key] = obj[key];
            return sortedObj;
        }, {});
}
  • 객체 내림 차순 정렬
function sortObjectByKeysDescending(obj) {
  return Object.keys(obj)
    .sort((a, b) => b.localeCompare(a)) // 키를 내림차순으로 정렬
    .reduce((sortedObj, key) => {
      sortedObj[key] = obj[key]; // 정렬된 키 순서대로 새 객체에 삽입
      return sortedObj;
    }, {});
}
  • 같은 객체인지 내부 키와 값 비교
function areObjectsEqual(obj1, obj2) {
    if (Object.keys(obj1).length !== Object.keys(obj2).length) return false;
    for (let key in obj1) {
        if (obj1[key] !== obj2[key]) return false;
    }
    return true;
}
읽는 시간 1분

소수 체크

function isPrime(num) {
  if (num === 2) {
    return true
  } else if (num % 2 === 0) {
    return false
  }
  let sqrt = parseInt(Math.sqrt(num))
  for (let i = 3; i <= sqrt; i = i + 2) {
    if (num % i === 0) {
      return false
    }
  }
  return true
}
읽는 시간 1분

약수 구하기

약수 : 어떤 정수를 나머지 없이 나눌 수 있는 정수

  1. 모든 수를 나눠서 약수 구하기

조건 : 나누었을때 나머지의 값이 0이면 추가

조건을 만족 못했을때는 추가

조건 범위 : 약수는 최대 자기 자신까지 되기 때문에 반복문에서 자기 자신 값 이하로 설정

    let num = 8; // 약수를 찾기 위한 정수 설정
    let result = []
    let index = 1;
    
    while (index <= num) {
      if (num % index === 0) result.push(index)
      index++
    }
    console.log(result) // [ 1, 2, 4, 8 ]
  1. 주어진 수의 절반을 대상으로만 확인하기

약수는 본인을 제외하고 num/2 보다 클 수 없기 때문에 절반 값 까지만 체크

읽는 시간 2분