배열을 만드는 방법은 두가지
const fruits = ['사과','바나나'];
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0])
console.log(fruits[fruits.length-1]);
for(let i=0, i<fruits.length, i++){
console.log(fruits[i])
}
for (let fruit of fruits){
console.log(fruit);
}
fruits.forEach((fruit) => console.log(fruit));
foreach가 for문에 비해 성능은 별로지만 가독성이 더 좋으니 가벼운경우라면 foreach룰 사용할것
fruits.push('peach');
console.log(fruits)
array.push(3) = array[arr.length]=3 //마지막으로 추가할 요소가 하나뿐이라면 후자가 훨씬 빠르고 좋음
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)
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’,...]