[JS]Spread/Rest
spread
배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있다.
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
sum(...numbers);
let arr = [5, 6, 7];
let arr0 = [8, 9, 10];
let arr2 = [...arr, ...arr0]; // [5, 6, 7, 8, 9, 10];
let arr3 = [1, 2, 3];
let arr4 = [...arr3]; // 복사
immutable하기 때문에 새로운 배열에 재할당해야함
let obj1 = { foo: "bar", x: 42 };
let obj2 = { foo: "baz", y: 13 };
let clonedObj = { ...obj1 }; // {foo: 'bar', x: 42}
let mergedObj = { ...obj1, ...obj2 }; // {foo: 'baz', x: 42, y: 13}
rest
함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.
function sum(...theArgs) {
return theArgs.reduce((previous, current) => {
return previous + current;
});
}
sum(1, 2, 3); // 6
sum(1, 2, 3, 4); // 10
배열의 메소드 사용
동시에 Math 사용
function biggest(...rest) {
let max = 0;
for (let i = 0; i < rest.length; i += 1) {
if (max < rest[i]) {
max = rest[i];
}
}
return max;
}
let value = biggest(1, 2, 3);
let arr = [1, 2, 3, 4];
let value = Math.max(...arr); // 4
댓글남기기