JS_배열 반복문

dev.dave·2023년 7월 25일

Javascript

목록 보기
44/167

const fruits = [
"apple",
"banana",
"orange",
"kiwi",
"mango",
"grape",
"dragonfruite",
"tangerin",
];
let arr = [];

  //   let num = 0;
  //   while (num < 3) {
  //     console.log(num);
  //     num++;
  //   }

  // for (let i = 0; i < fruits.length; i++) {
  //   //arr = fruits[i];
  //   //console.log(arr);
  //   //console.log(fruits[i]);
  //   arr.push(fruits[i]);
  // } //일반 for문
  // console.log(arr);

  // for (let fruit of fruits) {
  //   //console.log(fruit); //for of
  //   arr.push(fruit);
  // }
  // console.log(arr);

  // fruits.forEach((fruit, index, array) => {
  //   //console.log(fruit, index, array);
  //   arr.push(fruit, index, array);
  // }); // forEach 배열안의 각각요소에 정해진 콜백함수를 실행함, 매개변수...
  // console.log(arr);
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  // //  배열을 스트링으로 만들기!!!!!!!!!!!!!!!!!!!!
  // const result = fruits.join(",");
  // //  const result = fruits.join('|');
  // //  const result = fruits.join(', and ');
  // // join은 배열에있는 모든 아이들을 더해서 스트링으로 리턴해줌.
  // // 자동으로 쉼표가 들어감
  // console.log(result); // 스트링으로 리턴됨
  // arr.push(result); //다시 배열로 ㅋ
  // console.log(arr);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //문자열을 배열로 만들기
  // const words = "apple, banana, curcumber";
  // const result = words.split(",");
  // const result = words.split(",",2);
  // console.log(result);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //배열의 순서를 거꾸로 만들어라.//배열자체를 아예 거꾸로만들어버림.
  // const result = fruits.reverse();
  // console.log(result);
  // console.log(fruits);
  //근데 이것도 배열 자체를 변형시켜버림 비추.

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //배열에서 첫번쨰 두번쨰 요소 제외하고 나머지 리턴해라.
  // const result = fruits.splice(0, 2);
  // console.log(result);
  // console.log(fruits);
  // 근데 이것도 배열 자체를 변형시켜버림 비추.
  //그러면
  //const result = fruits.slice(2);//슬라이스는 배열은 안걸들고 2 하면 2번쨰 인덱스부터 끝까지하고
  // const result = fruits.slice(2,5);//2,5 하면 2번째부터 5번쨰까지만 리턴함
  // console.log(result);
  // console.log(fruits);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  class Student {
    constructor(name, age, enrolled, score) {
      this.name = name;
      this.age = age;
      this.enrolled = enrolled;
      this.score = score;
    }
  }

  const students = [
    new Student("A", 29, true, 45),
    new Student("B", 28, false, 80),
    new Student("C", 30, true, 90),
    new Student("D", 40, false, 66),
    new Student("E", 18, true, 88),
  ];

  // 90점 맞은 학생 찾아라. 하나만 리턴해줌
  // const result = students.find((student) => {
  //   //console.log(student, index);
  //   return student.score === 90;
  // });
  // console.log(result);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //수업에 등록enrolled 한 학생만 골라내라. 배열로 리턴해라 즉, 여러개를 리턴해야함.
  // const result = students.filter((student) => student.enrolled);
  // console.log(result);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //점수만 리턴해라 배열로.
  //map은 지정된 콜백함수를 호출하면서,
  //각각의 요소들을 함수를 거쳐서, 새로운 값으로 배열로 변환해줌.
  //즉, 함수의 기능에 따라 맵핑 되어서 변환되어 배열로 만들어진다.
  //const result = students.map((student) => student.score);
  // const result = students.map((student) => student.score * 2); //두배로 설정 해줄수도 있고, 여튼 로직, 기능,을 짤 수 있음
  // console.log(result);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //50점 밑으로인 학생을 불리언으로 확인해라.
  // const result = students.some((student) => student.score < 50);
  // console.log(result);

  // const result2 = !students.every((student) => student.score >= 50);
  // console.log(result2); //50보다 높거나 같은것 인데 앞에 느낌표 해서 반대로~

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //학생들의 평균 점수 구하기
  // const result = students.reduce((이전값, 현재값) => { //이전값은 이전에 콜백함수에서 리턴된 값 이 전달되어져 오고, 현재값은 배열의 아이템을 순차적으 전달받는다.
  //   console.log(이전값, 현재값);
  //   //return 이전값;
  //   //return 현재값;
  //   return 이전값 + 현재값.score;
  // }, 0); // 여기 0은 초기값 설정해줌
  // console.log(`최종합계값 ${result}`);
  //console.log(`평균값 ${result / students.length}`);
  //리듀스는 우리원하는 초기값(시작점)부터, 모든 배열을 돌면서, 어떤 값을 누적할때 쓰는것임.

  //const result = students.reduceRight((이전값, 현재값) => { //리듀스 롸잇은 거꾸로 시작함

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //학생들의 모든 점수를 받고, 50이상인 애들만 필터해서, 스트링으로 변환하기
  //map 으로 배열로 받아놓은다음,
  //filter 해서 거르고,
  //join으로 스트링으로 바꾸기
  // const result = students
  //   .map((student) => student.score)
  //   .filter((score) => score >= 50)
  //   .join();
  // console.log(result);

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //점수를 낮은점수에서 높은점수 대로 정렬하고, 결과값은 스트링으로 리턴해라.
  // const result = students
  //   .map((student) => student.score)
  //   .sort((a, b) => a - b)
  //   .join();
  // console.log(result);

  //sort 는 정렬인데,
  //콜백함수에는 이전값과 현재값이 전달이 되는데,
  //마이너스 값을 리턴하게 되면, 첫번쨰가 뒤에꺼보다 작다고 간주되어짐.
  //.sort((a, b) => b - a ) 이렇게 큰값이 앞으로 정렬되게 하려면 이렇게 하면되고,
profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글