JavaScript 2주차
배열이란?🍍
배열(array)은 같은 타입의 변수들로 이루어진 유한 집합으로 정의됩니다.
배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 합니다.
C언어에서 인덱스는 언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있습니다.
let arr = ['a', 'b',500,'good'] // 배열선언
arr[0] = 'change' // 0번째 인덱스 변경
console.log(arr) // ['change', 'b', 500, 'good']
각 인덱스를 변경할 수 있다.
let arr = ['a', 'b',500,'good'] // 배열선언
arr.push('add'); // 마지막에 add를 추가
console.log(arr) // [ 'add', 'b', 500, 'good', 'add' ]
push를 통해 맨 뒤에 원하는것을 추가시킬 수 있다.
let arr = ['a', 'b',500,'good'] // 배열선언
arr.pop(); //맨뒤 인덱스 삭제
arr.shift(); //맨앞 인덱스 삭제
console.log(arr); // ['b', 500]
pop()은 맨뒤의 인덱스를 삭제, shift()는 맨앞의 인덱스를 삭제시킨다.
let arr3 = [4,5,6,1,2,3,4,5,6,3,2,1,2,3,5,3,3,4,1,'마지막'] // 길이가 긴 배열생성
console.log(arr3[arr3.length - 1]); // '마지막'
length를 배열에 활용하여 간단하게 마지막 인덱스 출력하기
let shoppingCart = ['햄', '김밥김', '단무지', '우유', '시금치', '쌀', '당근', '계란']; // 배열생성
let show = shoppingCart.splice(3,2,'두유');
console.log(show); // ['햄', '김밥김', '단무지', '두유', '쌀', '당근', '계란']
splice(시작할위치,어디까지삭제,무엇으로) 을 통해 해당 ‘우유’, ‘시금치’를삭제시키고 그곳곳을 ‘두유’로 대체시켰다.
let basket = [['양파','곰팡이'],['곰팡이','빵','딸기잼'],['귤','곰팡이','사과']];
function removeGerm(arr) {
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
if(arr[i][j]==='곰팡이'){
arr[i].splice(j,1);
}
}
}
return arr;
}
splice활용하기
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
console.log( fruits.filter( (arg) => arg.includes('ap') ) )
// ['apple', 'grapes']
filter의 인자로 함수를 주어 ‘ap’가 들어간 인덱스찾기
let courses = [
{level:'easy', subject: "English" },
{level:'hard', subject: "Mathmatic" },
{level:'medium', subject: "Literature" },
{level:'hard', subject: "Science" },
{level:'medium', subject: "Socialogy" }
];
console.log( courses.filter((a) => a.level.includes('hard')) )
//[
{ level: 'hard', subject: 'Mathmatic' },
{ level: 'hard', subject: 'Science' }
]
filter의 2번째 예시
let pasta = ['tomato', 'basil', 'onion','chicken'];
let pizza = ['tomato', 'cheese', 'onion','olive','beef'];
let a = pasta.concat(pizza);
a.filter( (val,index,target) => target.indexOf(val) === index);
//[ 'tomato', 'basil', 'onion', 'chicken', 'cheese', 'olive', 'beef' ]
concat 활용하기
filter(요소,인덱스,어떤것을?) a를 target으로 indexOf(val) 각 요소들의 첫번째 위치를 알아내어 그것이 올바른 위치에 있는지 비교하여 올바른것들만 반환.
let num = [[11, 12, 13], [14, 15, 16], [17, 18, 19]];
console.log( num[0].concat(num[1],num[2]) );
//[ 11, 12, 13, 14, 15, 16, 17, 18, 19 ]
concat 활용하기2