가장 큰 숫자 얻기

5191 단어 challengejavascript
주어진 숫자 배열 배열에 대해 각 하위 배열(가능한 경우)의 내용을 합산하고 더 큰 숫자를 반환하는 함수를 생성largerNumber합니다.

배열과 그 결과의 예는 다음과 같습니다.


largesetNumber([[1, 2], [2, 10], [3, 4]]); //12
largesetNumber([[1, 2, 100,1], [2, 10], [3, 4]]); //104
largesetNumber([[1], [2, 10], [3, 4]]);//12
largesetNumber([[], [2, 10], [3, 4]]);//12
largesetNumber([]);//'empty array'


가정


  • 항목이 모두 숫자이거나 빈 배열임

  • 지식


  • 중첩 배열에 액세스하는 방법
  • 중첩된 항목을 요약하는 방법

  • 의사 코드


  • 각 중첩 배열을 통한 매핑
  • 중첩 배열 내의 각 값을 합산합니다
  • .
  • 가장 큰 수를 고르세요

  • 해결책




    const largesetNumber = (array) => {
        if(array.length<1){
            return "empty array";
        }
        return Math.max(...array.map(item => item.length? item.reduce((acc, curr) => acc + curr) : 0))
    }
    


    댓글(무작위)


  • 원래 빈 중첩 배열이 아니라 "빈 배열을 필터링"하는 문에 대해 생각하지 않았습니다. if 문과 삼항 연산자가 작업을 만들었습니다
  • .
  • 처음에 맵이 중첩된 루프를 통해 반복되는 동안 다른 배열 내부에 reduce 결과를 푸시했지만 더 효율적인 방법을 찾았습니다.

  • // const largerNumber = (array) => {
    //     if(array.length<1){
    //         return "this is an empty array";
    //     }
    
    //     const result = [];
    //     array.forEach((item, index) => item.length>0 ? result.push(item.reduce((acc, curr)=> acc + curr)): console.log(`Array at position ${index} is empty`))
    //     return Math.max(...result)
    
    // }
    


  • Math.max는 배열을 사용하지 않습니다. 일련의 매개변수를 사용합니다. 스프레드 연산자는 배열의 모든 값을 개별 매개변수로 제공합니다.
  • 좋은 웹페이지 즐겨찾기