let a = [1,2,3,4,5];
a.concat(6);
console.log(a); // [1, 2, 3, 4, 5]
뭔가 6이 추가될 것 같지만, 추가되지 않음!
let a2=a.concat(6);
console.log(a2) //[1, 2, 3, 4, 5, 6]
이런식으로 해야 추가된다.
concat은 기존의 배열에 뭔가를 덧붙여서 새로운 배열을 만들 때 쓴다.
원본, 즉 기존 배열이 변하지 않는다! push() 랑 다른 느낌
원본을 바꾸지 않는 concat같은 메소드들은 문자열에도 적용 가능하다
짜투리)
a2=a.concat([6,7,8]); //이런것도 된다
let a=[1,2,3,4,5];
a.join(); // console에 치면 a.join()명령으로 "1,2,3,4,5" 이렇게 뜬다
console.log(a); //여전히 [1,2,3,4,5] 다
let a2 = a.join(); //조인해서 하나의 문자열로 바꿈
a.join(매개변수)
매개변수에 아무것도 없으면 쉼표(,)가 적용된다.
//console 에 입력한 값
let a = [1,2,3,4,5];
a.indexOf(3);//2
a.push(2);//[1,2,3,4,5,2]
a.indexOf(2) //1
a.lastIndexOf(2);//5
lastIndexOf는 뒤에서부터 찾는다. 그래서 a[1]의 2 말고 a[5]의 2의 인덱스를 먼저 찾아서 반환해준다.
((참고))
a.indexOf(100); 이렇게 하면 a안에 100이 없기에 -1이 반환된다.
그래서 if(a.indexOf(100) === -1) { }
이런코드 많이 쓴다.
let a = [1, 2, 3, 4, 5, 2, 3];
let a2= a.slice(0, 3); // [1, 2, 3]
console.log(a); [1, 2, 3, 4, 5, 2, 3]
console.log(a2); // [1, 2, 3]
//a는 변하지 않음. 기존 배열은 그대로다.
let a = [1, 2, 3, 4, 5, 2, 3];
let a2= a.splice(5, 2); //index 5부터 2개 자르겠다. 라는 뜻
console.log(a2); //[2,3]
console.log(a); //[1,2,3,4,5]
slice와 다르게 splice는 기존 배열에 영향을 준다!!
즉, string에는 쓸수 없다.