06. Array

  • Splice 메서드 활용하기

    - 정의 : 배열 내의 특정한 요소를 삭제하거나, 다른
      요소로 대치, 새로운 요소를 추가할 때 사용한다.

    -splice 메서드의 형태
    splice(start,delete,item)
    • start : 배열의 index의 시작점
    • delete : 삭제할 요소의 개수
    • item : 추가하고 싶은 요소

      간단예시
      let number = [1,2,3,4,5]
      num.splice(2,1,10)
      console.log(num); // [1,2,10,4,5]
  • 필터(filter) 메서드

    - 정의 : 조건에 맞는 요소들만 모아서 새로운 배열을   반환한다. 만약, 조건에 부합하는 요소가 없을 경우   배열을 반환한다.

    - 필터(filter)메서드의 형태

    let numbers = [0, 10, 39, 71, 12, 30]

(1) let result =numbers.filter((value)=> value>=30)
     console.log(result); // [39, 71, 30]
(2) function highestScores(value){
     return value>70;
     }
     let result = numbers.filter(highestScores);
     console.log(result); // 71
👉 (1)번 - 필터의 인자에서 바로 함수를 써주는 방법
   (2)번 - 함수를 선언 한 후 필터 인자에서 callback 하는 방법
  • 연습문제
    (1) 스포츠 종목으로 이루어진 배열에서 filter()를      이용해서 구기종목을 반환하라.
    문제1)
    let sports = ['축구', '수영', '농구', '역도', '야구', '배구']
    해답)
    function 스포츠(){
    let 구기종목 = sports.filter(word=> word.includes('구'));
    return 구기종목;
    }
    console.log(스포츠()); // ['축구','농구','야구','배구']

    (2) 과목 중 level이 'hard'인 과목만 출력해 주세요.
    문제2)
     let courses = [
    {level:'easy', subject: "English" }, 
    {level:'hard', subject: "Mathmatic" }, 
    {level:'medium', subject: "Literature" }, 
    {level:'hard', subject: "Science" }, 
    {level:'medium', subject: "Socialogy" }
    ];
해답)
function filtered (level) {
  return courses.filter(function(x){
    return x.level.includes('hard');
  })
}
console.log(filtered('hard')); // 수학, 과학

👉 필터는 내가 오늘 하루 종일 헤맸던 메서드이다...      그러므로 꼭!!!!!!! 복습을 하자🙏

  • Concat 메서드

    - 정의 : 주어진 배열에 기존 배열을 합쳐서 새로운   배열을 반환한다. 원본의 배열은 변하지 않으며,   새로운 배열이나 원본 배열을 수정해도 서로가   영향을 받지 않는다.

    - 간단예시
let 축구선수 = ['손흥민','박지성','차범근']
let 야구선수 = ['추신수','류현진','김광현']
console.log(축구선수.concat(야구선수)); // 
['손흥민','박지성','차범근','추신수','류현진','김광현']

- 중복값 제거하기

Q. 파스타와 피자의 재료가 배열로 나타나있습니다. 
중복된 재료를 뺀 재료의 배열을 만들어주세요.
let pasta = ['tomato', 'basil', 'onion','chicken'];
let pizza = ['tomato', 'cheese', 'onion','olive','beef'];
해답
  let result = pasta.concat(pizza);
  let newResult = result.filter((word, index) => 
    result.indexOf(word) === index)
  return newResult
}
console.log(totalIngredients()); //
['tomato', 'basil', 'onion', 'chicken', 'cheese', 'olive', 'beef' ]

👉 여기서도 필터에게 많이 혼났으며, 구글 검색결과 중
result.filter((item, iddex) => result.indexOf(item) === index); 의 의미 해당 요소의 indexOf()값과 배열에 위치하는 값이 같은 값을 추출
위의 내용을 읽어보고 필터에 대해 조금 더 가깝게 다가갈 수 있었다.

오늘의 회고

오늘도 레플릿을 풀어보며 강의를 들으며 이해하는 내용과 내가 직접 코드를 치는 것은 아주 다르다는 것을 느꼈다.

오늘 레플릿 중 곰팡이를 치워야 하는 문제와 각 종 필터문제에서 많은 시간을 보내며 이들을 이해하고 익숙해지기 위해 많은 노력을 했다.

곰팡이 문제는 결국 오늘 해결하지 못했지만, 곰팡이에 대한 복수심에 불타올랐으니 내일 꼭 해결하여 벨로그에 적을 수 있도록 하겠다.

오늘도 구글과 사전스터디 코햇반 조원님들께 감사함🙏🙏을 느끼며, 내일은 오늘보다 더 발전할 수 있도록 노력해야겠다.😀😀

오늘은 여기까지~😉😉

profile
발전하고 싶은 프론트엔드 개발자 입니다 :)

0개의 댓글