자바스크립트)배열

minji jeon·2022년 6월 7일
0

자바스크립트

목록 보기
5/8
post-thumbnail

array

  1. object vs 자료구조 또다른 차이는 값의 순서와 length
  2. 다양한 타입의 object들을 묶어놓은게 자료구조
  3. array의 포인트는 index
  4. 배열이 가지고 있는 값을 요소(elemeent)

declaration

배열을 만드는 방법은 두가지

  • const arr1 = new Array();
  • const arr2 = [1,2];

index position

const fruits = ['사과','바나나'];
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0])
console.log(fruits[fruits.length-1]);

looping

  • print all fruits
for(let i=0, i<fruits.length, i++){
    console.log(fruits[i])
}
  • for of
for (let fruit of fruits){
    console.log(fruit);
}
  • foreach(얘는 콜백)
fruits.forEach((fruit) => console.log(fruit));

foreach가 for문에 비해 성능은 별로지만 가독성이 더 좋으니 가벼운경우라면 foreach룰 사용할것

addition, deletion, copy

  • push: add
    push는 원본배열자체를 바꿈
fruits.push('peach');
console.log(fruits)

array.push(3) = array[arr.length]=3 //마지막으로 추가할 요소가 하나뿐이라면 후자가 훨씬 빠르고 좋음
  • pop: remove an item
fruits.pop() //뒤에서 하나가 없어짐
  • shift, unshift 엄청 느림

  • splice (지정된 포지션에서 삭제가능)

  • concat: combine two arrays

    concat은 원본에서 복사함. 직접변경하지 않는 매서드사용추천

  • searching (어떤값이 몇번째 인덱스에 있는지 검사)

console.log(fruits.indexof('apple'));
console.log(fruits.includes('apple'))

last indextof
console.log(fruits.concat)

quiz

Q1. make a string out of an array

{
  const fruits = ['apple', 'banana', 'orange'];
  fruits.join();
  fruits.toString()
}

Q2. make an array out of a string

{
  const fruits = '🍎, 🥝, 🍌, 🍒';
  fruits.split(',')
}

Q3. make this array look like this: [5, 4, 3, 2, 1]

{
  const array = [1, 2, 3, 4, 5];
  array.reverse()
}

Q4. make new array without the first two elements

{
  const array = [1, 2, 3, 4, 5];
  array.splice(2,3)  ///땡
  array.slice(2,5)//2부터~4번째 까지 -->splice는 배열자체 변경, slice는 원하는 부분만 return하고 싶을ㄸ대 
 // array는 여전함   
}

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),
];

Q5. find a student with the score 90

{ for(let i=0; i< students.length; i++){
    if(students.score =90){
 }
}//땡
students.find((student)=> student.score ===90;)}

// Q6. make an array of enrolled students
{students.find((student)=>student.enrolled===true;)//땡
students.filter((student)=>student.enrolled)
}

Q7. make an array containing only the students' scores

// result should be: [45, 80, 90, 66, 88]
{ students.map((student)=>student.score)
}

Q8. check if there is a student with the score lower than 50

{students.some((student)=>student.score<50)
}

Q9. compute students' average score

{ 
}

Q10. make a string containing all the scores

// result should be: '45, 80, 90, 66, 88'
{ map((student)=> student.score).filter((score)=>score>=50).jon()
}

Bonus! do Q10 sorted in ascending order

// result should be: '45, 66, 80, 88, 90'
{
}

추가공부

  • 배열은 객체타입이다
    일반객체는 인덱스가 없다 그럼 어떻게 접근하는가?
    키로 접근
    object.length는 안되겟네
    배열을 모두 도는법?

    for 루프나 object.keys()라는 메서드 사용

  • array.from 유사배열 객체를 반환하여 배열생성

array.from(‘hello’)
-->[‘h’,’e’,...]
  • 유사배열 객체는 for문으로 순회도 가능
profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글