모든 초보자 호출 - 1부: 배열의 재미!

표지 사진: Faris Mohammed


안녕하세요, 코더 여러분! 💻

이 시리즈에서는 초보자가 종종 어려움을 겪는 개념인 배열을 사용하여 작업할 것입니다.

선택 언어



JavaScript는 에서 꽤 인기가 있는 것 같아서 그것을 사용할 것입니다.
선택한 언어로 솔루션을 보고 싶다면 주저하지 말고 답글을 게시하세요. 그러면 누군가 솔루션을 게시할 수 있기를 바랍니다.

여기에 표시된 솔루션 정보



솔루션은 연습 문제에 불과하다는 점을 명심하십시오. 솔루션을 구현하는 다양한 방법이 있으며 일부는 다른 것보다 더 최적화되어 있습니다.
이 글을 읽고 대체 솔루션을 제공하고 싶다면 의견에 환영합니다! 💬

연습 1



사용자 연령 배열이 제공됩니다. 당신의 임무는 사용자의 평균 연령을 계산하는 코드를 작성하는 것입니다.

const userAges = [12, 67, 45, 32, 71];

const averageAge = // your code here

console.log(`Average age is ${averageAge}`);


연습 1의 솔루션



내 솔루션을 보려면 클릭하세요.


const userAges = [12, 67, 45, 32, 71];

const getAverageAge = (ages) => {
    if (!Array.isArray(ages) || ages.length <= 0) {
        return 0; // or anything you see fit
    }

    return ages.reduce( (total, age) => total + age, 0) / ages.length;
}

const averageAge = getAverageAge(userAges);

console.log(`Average age is ${averageAge}`);

무슨 일이야?
  • 먼저 배열을 처리하고 배열이 비어 있지 않은지 확인하는 조건을 추가합니다.
  • 그런 다음 reduce을 사용하여 모든 연령을 합산할 수 있습니다.
  • 결과를 배열의 요소 수로 나눕니다. 배열이 비어 있지 않은지 확인했기 때문에 안전하게 수행할 수 있습니다. 즉, 0으로 나누지 않는다는 의미입니다.



  • 연습 2



    이제 연령 배열 대신 사용자 배열로 시작합니다.
    작업은 동일합니다. 사용자의 평균 연령을 계산하는 코드를 작성합니다.

    const users = [            
        {id: 1, age: 12},
        {id: 2, age: 67},
        {id: 3, age: 45},
        {id: 4, age: 32},
        {id: 5, age: 71}
    ];
    
    const averageAge = // your code here
    
    console.log(`Average age is ${averageAge}`);
    


    연습 2의 솔루션



    내 솔루션을 보려면 클릭하세요.


    const users = [            
        {id: 1, age: 12},
        {id: 2, age: 67},
        {id: 3, age: 45},
        {id: 4, age: 32},
        {id: 5, age: 71}
    ];
    
    const getAverageAge = (ages) => {
        if (!Array.isArray(ages) || ages.length <= 0) {
            return 0; // or anything you see fit
        }
    
        return ages.reduce( (total, age) => total + age, 0) / ages.length;
    }
    
    const averageAge = getAverageAge(users.map(user => user.age));
    
    console.log(`Average age is ${averageAge}`);
    

    😕 모양은 운동 1과 거의 같습니다!

    개발자는 게을러서 가능할 때마다 코드를 재사용합니다.
    연습 1의 기능getAverageAge이 작업을 수행하므로 재사용하지 않는 이유는 무엇입니까?
    가능하지만 정수 배열이 필요하고 객체 배열( users )이 있습니다.
    각 사용자의 age 속성만으로 새 배열을 만들 수 있다면 우리는 황금이 될 것입니다.
    그것이 map이 작용하는 곳입니다. 이를 사용하여 각 사용자의 나이로 새 배열을 만들 수 있습니다.

    userAges.map(user => user.age)
    

    getAverageUser에 전달하면 완료됩니다!



    피드백



    이런 종류의 짧은 연습문제에 대해 어떻게 생각하는지 댓글로 알려주시면 개념을 이해하는 데 반복이 중요하다고 생각하므로 새로운 연습문제를 생각해 보겠습니다.

    즐거운 코딩하세요! ⌨️

    좋은 웹페이지 즐겨찾기