JavaScript
Spread operator (스프레드 연산자)
ToKor
2020. 12. 17. 04:32
... : spread를 통합 배열 연산진행
var arr = [3,4];
...arr // 3 4 단독으로 이렇게 쓰이지는 않는다
var tar = [1,2,...arr,5,6] // [1,2,3,4,5,6]
var arr2 = [...arr]; // [3,4]
var arrObj = [10, {a: "bc", b: "cd", c: {d: "de", e: "fg"}, h: ["A", "BC","DEF"]},20];
var arrObj2 = [...arrObj]; // [10, {a: "bc", b: "cd", c: {d: "de", e: "fg"}, h: ["A", "BC","DEF"]},20]
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr = [...arr1, ...arr2]; // [1,2,3,4,5,6]
[...arr1,...arr2] === arr1.concat(arr2) // concat에서의 사용과 같다
/* Math에서 사용 */
Math.max(1,5,3,2) // 5
var arr = [1,5,3,2];
Math.max(arr) // NaN 넘버가 아닌 객체가 들어옴
Math.max(...arr) // 5
var num = 237134; // number 중 각각에서 가장 큰값
var max = Math.max(...num.toString().split("")); // 7
/* string을 array로 변환시 */
var str = "world";
var chars = [...str]; // ["w","o","r","l","d"]
/* Array를 string으로 변환시 */
var arr = ["ab","cd","ef","gh"]; // ab,cd,ef,gh
var str = arr.join(""); // abcdefgh
/* Object copy, Deep Copy */
var obj = {name: "john", age: 20, school: "seneca"};
var obj2 = {...obj}; // {name: "john", age: 20, school: "seneca"}
var obj.name = "tom"; // obj2.name === "john" 변함없음