JavaScript에서 spread 연산자를 사용하는 10가지 방법
24504 단어 javascript
spread 연산자는 JavaScript에서 발생할 수 있는 여러 문제를 해결하는 데 사용됩니다.
본고에서, 당신은spread 조작부호를 사용하여 다음과 같은 조작을 어떻게 실행하는지 배울 것입니다.
기본 형식에서 확장 연산자는 세 개의 점처럼 보인다.
[...arr];
복제 배열
우리는spread 연산자를 사용하여 그룹을 복제할 수 있지만, 이것은 여전히 하나shallow clone이다.
만약 우리가
arr1
라는 수조를 가지고 있다면, 우리는 이 arr2
라는 수조를 복제하고 싶다.const arr1 = [1,2,3];
const arr2 = [...arr1];
console.log(arr2);
// [ 1, 2, 3 ]
따라서, 우리는 기본 그룹을 복제할 수 있으며, 다중 그룹이나 날짜나 함수를 가진 그룹에 적용되지 않는다는 것을 알아야 한다.Note: Read more about deep-cloning in JavaScript
조합 배열
두 개의 수조가 하나로 합쳐야 한다고 가정하면 이런 상황이 자주 발생하기 때문에 우리는
concat
방법을 사용할 수 있다.아래에서 보듯이,spread 조작부호는 단지 이 방법을 더욱 간단하게 할 뿐이다.
const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [...arr1, ...arr2];
console.log(arr3);
// [ 1, 2, 3, 4, 5, 6 ]
현재 이 두 진열(arr1,arr2)은 arr3
로 통합되었다.너는 다른 안배를 통해 어느 것이 1위에 랭크되어야 하는지를 설명할 수 있다.
const arr3 = [...arr2, ...arr1];
console.log(arr3);
[4, 5, 6, 1, 2, 3];
이것은 그룹을 조합하는 좋은 방법으로 추가할 수 있는 수량은 무한하기 때문에 확장 연산자를 계속 추가할 수 있다.const output = [...arr1, ...arr2, ...arr3, ...arr4];
그룹에 항목 추가하기
만약 하나의 그룹이 있다면, 그 안에 하나 이상의 항목을 추가해야 합니다.
너는 진열을 이용할 수 있다.버튼을 누르지만spread 조작부호도 정상적으로 작동할 수 있습니다.
let arr1 = ['this', 'is', 'an'];
arr1 = [...arr1, 'array'];
console.log(arr1);
// [ 'this', 'is', 'an', 'array' ]
보시다시피 새 문자열을 기존 그룹의 끝에 추가합니다.너는 심지어 여러 문자열을 전달할 수 있다.
arr1 = [...arr1, 'array', 'cool'];
console.log(arr1);
// [ 'this', 'is', 'an', 'array', 'cool' ]
객체에 속성 추가
사용자의 대상이 있다고 가정하지만,age 속성이 부족합니다.
const user = {
firstname: 'Chris',
lastname: 'Bongers'
};
이 사용자 대상에 나이를 추가하려면spread 조작부호를 다시 사용할 수 있습니다.const output = {...user, age: 31};
위에서 발생한 일은 사용자 대상을 확장하고 age
라는 새로운 속성을 추가하는 것입니다. 그 값은 31
입니다.전체 설정은 다음과 같습니다.
const user = {
firstname: 'Chris',
lastname: 'Bongers'
};
const output = {...user, age: 31};
console.log(output);
// { firstname: 'Chris', lastname: 'Bongers', age: 31 }
Math() 함수 사용
만약 네가 숫자 그룹을 가지고 있다면, 가장 낮거나, 가장 높거나, 이 숫자들의 총계를 얻고 싶다.
이것은 또 다른 spread 운영자에게 이채를 띠게 하는 좋은 선택이다.
우리의 입력 그룹은 아래와 같다
const arr1 = [1, -1, 0, 5, 3];
가장 작은 숫자를 얻기 위해서, 우리는spread 연산자와 Math.min method
키를 사용할 수 있다.const arr1 = [1, -1, 0, 5, 3];
const min = Math.min(...arr1);
console.log(min);
// -1
이것은 출력 -1
을 출력합니다. 이것은 가장 낮은 숫자이기 때문에, 그룹에서 -1을 삭제하십시오. 가장 낮은 숫자가 0
되는 것을 보십시오.가장 큰 숫자를 얻기 위해서 우리는
Math.max
방법을 사용할 수 있다.const arr1 = [1, -1, 0, 5, 3];
const max = Math.max(...arr1);
console.log(max);
// 5
보시다시피 최대치는 5
되돌아갈 것입니다. 5
을 제거하면 되돌아갈 것입니다. 3
만약 우리가 전파하지 않는다면 무슨 일이 일어날지 알고 싶다면:const arr1 = [1, -1, 0, 5, 3];
const max = Math.max(arr1);
console.log(max);
// NaN
JavaScript가 배열에서 최대값이 얼마인지 모르기 때문에 반환NaN
됩니다.배열을 함수 매개 변수로 확장하기
세 개의 매개 변수를 포함하는 함수가 있다고 가정해 보세요.
const myFunc(x1, x2, x3) => {
console.log(x1);
console.log(x2);
console.log(x3);
}
다음과 같은 방법으로 이 함수를 호출할 수 있습니다.myFunc(1, 2, 3);
하지만 우리가 통과하고 싶은 그룹이 있다면 무슨 일이 일어날까.const arr1 = [1, 2, 3];
현재 우리는spread 조작부호를 사용하여 이 수조를 우리의 함수로 확장할 수 있다.myFunc(...arr1);
// 1
// 2
// 3
보시다시피, 우리는 수조를 세 개의 단독 매개 변수로 확장하여 함수에 전달합니다.전체 통화는 다음과 같습니다.
const myFunc = (x1, x2, x3) => {
console.log(x1);
console.log(x2);
console.log(x3);
};
const arr1 = [1, 2, 3];
myFunc(...arr1);
// 1
// 2
// 3
함수에 무한 매개 변수를 전달하다
무한 매개 변수를 받아들이는 함수가 있다면, 동적 순환을 원하는 속성일지도 모른다.
const myFunc = (...args) => {
console.log(args);
};
만약 우리가 지금 여러 개의 매개 변수로 이 함수를 호출한다면, 우리는 아래의 상황을 볼 수 있을 것이다.myFunc(1, 'a', new Date());
다음과 같이 반환됩니다.[
1,
'a',
Date {
__proto__: Date {}
}
]
그리고 우리는 이 매개 변수를 동적으로 순환할 수 있다.노드 목록을 배열로 변환
spread 조작부호를 사용하여 페이지의 모든div를 가져오면 됩니다.이것들은
nodeList
의 형식으로 나타날 것이다.그리고 우리는spread 연산자를 이용하여 그것
nodeList
을 수조로 변환할 수 있다.const el = [...document.querySelectorAll('div')];
console.log(el);
// (3) [div, div, div]
여기서 우리가dom에서 세 개의div를 얻은 것을 볼 수 있다.우리는 현재 이 요소들이 수조 형식이기 때문에 쉽게 순환할 수 있다.
const el = [...document.querySelectorAll('div')];
el.forEach(item => {
console.log(item);
});
// <div></div>
// <div></div>
// <div></div>
Note: If you want to learn more about looping over nodeList results check out this article.
분해 대상
분해 대상에 익숙하면spread 조작부호가 매우 유용하다는 것을 알 수 있습니다.
만약 우리가 또 사용자를 위해 대상을 만들었다면.
const user = {
firstname: 'Chris',
lastname: 'Bongers',
age: 31
};
우리는 현재spread 연산자를 사용하여 그것을 단일 변수로 분해할 수 있다.const {firstname, ...rest} = user;
console.log(firstname);
console.log(rest);
// 'Chris'
// { lastname: 'Bongers', age: 31 }
보시다시피 사용자 대상을 분석하고firstname을firstname 변수로 분해하며 대상의 나머지 부분을rest
변수로 분해합니다.폭발 로프
spread 조작부호의 마지막 용례는 문자열을 분해하는 것입니다.
다음 문자열이 있다고 가정하십시오.
const str = 'Hello';
만약 우리가 이 문자열에 확장 연산자를 사용한다면, 우리는 알파벳 그룹을 얻을 것이다.const str = 'Hello';
const arr = [...str];
console.log(arr);
// [ 'H', 'e', 'l', 'l', 'o' ]
자, 알파벳 한 조.나는 또한 내가 이 글을 쓰는 과정을 생중계했다. 너는 유튜브에서 이 녹음을 볼 수 있다.
읽어주셔서 감사합니다. 연결해 드리겠습니다.
제 블로그를 읽어주셔서 감사합니다.내 이메일 시사 통신을 구독하고 Facebook 또는
Reference
이 문제에 관하여(JavaScript에서 spread 연산자를 사용하는 10가지 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/10-ways-to-use-the-spread-operator-in-javascript-1imb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)