ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5.Arrays
    JavaScript 2021. 9. 27. 11:14
    반응형

    forEach : 배열 내부의 value들을 각각 대입하여 작동합니다.

    const userList = ["user01", "user02"];
    
    function printUserList( list ) {
        userList.forEach((element) => console.log(element));
    }
    
    printUserList(userList); //user01 user02

     

    길이값 얻기 :  array.length;

    배열에 값 추가: array.push(넣을 값);

    console.log("userList 길이:" + userList.length); //userList 길이:2
    userList.push("user03");
    console.log(userList); //[ 'user01', 'user02', 'user03' ]

     

    filter : 원하는 값들만 걸러서 배열에 넣을 수 있습니다.

    const numbers = [1, 2, 3, 4, 5];
    
    function filtering( numbers ) {
        const filteredNumbers = numbers.filter( (element) => { 
            return element < 3}
        ); // 값이 3이하인 것들만 넣는다.
        return filteredNumbers
    }
    
    console.log(filtering(numbers)); //[ 1, 2 ]

     

    find: 첫번째로 조건에 부합되는 값 하나를 반환합니다. 조건에 부합되는 값이 없을 시 undefined가 반환됩니다.

    const numbers2 = [9, 5, 14, 3, 11];
    const numbers3 = [9, 8, 7, 6];
    
    const largerThan10 = (numbers) => {
        return numbers.find(function(number) {
            return number >= 10;
        });
    }
    
    console.log(largerThan10(numbers2)); //14
    console.log(largerThan10(numbers3)); //undefined

     

    filter() 와 find()의 차이점

    filter는 항상 배열을 반환하고 find는 조건에 부합되는 값 하나를 리턴합니다.

    const numbers2 = [9, 5, 14, 3, 11];
    const numbers3 = [9, 8, 7, 6];
    
    const largerThan10 = (numbers) => {
        return numbers.find(function(number) {
            return number >= 10;
        });
    }
    
    const largerThan10s = (numbers) => {
        return numbers.filter(function(number) {
            return number >= 10;
        });
    }
    
    console.log(largerThan10(numbers2)); //14
    console.log(largerThan10(numbers3)); //undefined
    console.log(largerThan10s(numbers2)); //[ 14, 11 ]

     

    map() : 새로운 배열을 생성하여 반환합니다.

    const arr = [1, 2, 3, 4, 5];
    
    const modifyNumber = (numbers) => {
        return numbers.map((number) => {
            return number * 2
        });
    }
    
    console.log(modifyNumber(arr)); //[ 2, 4, 6, 8, 10 ]
    
    
    //map 예시 2
    const users = [{
        id: 1,
        name: "Sam Doe"
    }, {
        id: 2,
        name: "Alex Blue"
    }];
    
    const html = `<ul>
        ${users.map(user => `<li>${user.name}</li>`).join("")}
        </ul>`;
    const html2 = `<ul>
        ${users.map(user => `<li>${user.name}</li>`).join()}
        </ul>`;
    console.log(html); // <ul> <li>Sam Doe</li><li>Alex Blue</li> </ul>
    
    //>>join 구분자에 ""를 넣어주지 않으면 default값인 ,로 string이 된다.
    console.log(html2);// <ul> <li>Sam Doe</li>,<li>Alex Blue</li> </ul>

     

    includes(찾을 값) : 찾을 값을 포함하고 있는지 여부를 boolean으로 반환합니다.

    const groceries = ["Apple", "Peach", "Tomato"];
    
    console.log(groceries.includes("Tomato")); // true
    console.log(groceries.includes("Bread")); // false

     

    join("구분자") : 배열을 구분자로 연결한 문자열로 반환합니다.

    const groceries = ["Apple", "Peach", "Tomato"];
    
    console.log(groceries.join()); // Apple,Peach,Tomato >> default = ","
    console.log(groceries.join("; ")); // "Apple; Peach; Tomato"
    console.log(groceries.join(" . ")); // "Apple . Peach . Tomato")


    알아두면 좋은 함수

    .every(param => 조건) :  배열의 모든 값의 조건 충족여부 조회하여 boolean으로 리턴합니다.

    .some(param => 조건) : 배열의 값중 하나라도 조건 충족여부를 조회하여 boolean으로 리턴합니다.

    const numbers = [1, 2, 3, 4, 5];
    
    const someOver3 = numbers.some(number => number >= 3);
    const everyOver3 = numbers.every(number => number >= 3);
    
    console.log(someOver3, everyOver3); //true false

     

    .splice(시작위치, 종료위치) : 기존배열에서 시작~종료위치 만큼 값을 꺼내어 새로운 배열을 반환합니다.

    기존배열에서 꺼내진 값은 삭제됩니다.

    const items = ["item1", "item2", "item3"];
    const deletedItem = items.splice(1, 2); //splice(시작위치, 종료위치);
    
    console.log(items); //[ 'item1' ]
    console.log(deletedItem); //[ 'item2', 'item3' ]

    .reduce(reducer, 시작값): 배열의 값들을 연산해 하나의 값으로 리턴합니다.

    forEach와의 차이점은 reduce는 결과값을 return 할 수 있고 forEach는 결과값을 return 할 수 없습니다.

    const numbers = [1, 2, 3, 4, 5];
    
    const reducedNumbers = numbers.reduce((total, current) => {
        return total+ current;
    }, 0);
    
    //-------------------------------------------------------------------------------
    
    let sum = 0
    const forEachSum = numbers.forEach(number => {
        return sum += number;
    })
    
    console.log(forEachSum); //undefined
    console.log(reducedNumbers); //15

     

    반응형

    'JavaScript' 카테고리의 다른 글

    7.Array 2  (0) 2021.10.01
    6.Objects  (0) 2021.09.27
    4.Conditions  (0) 2021.09.27
    3.variables  (0) 2021.09.27
    2.Numbers  (0) 2021.09.27

    댓글

Designed by Tistory.