JavaScript에 대한 파괴적인 방법

이번에는 앞서 기사에서 여러 차례 언급된 자바스크립트의 파괴적인 방법에 대해 설명하고 싶다.
파괴적 방법
우선 파괴적인 방법은 대상의 원래 배열 값을 바꾸는 방법이다.
예를 들어 파괴적인 방법은 다음과 같은 방법이 적용된다.
•sort()
•splice()
•push()
•shift()
•unshift()
• reverse() 등
내가 실제로 파괴적인 방법으로 골머리를 앓는 예가 바로 이것이다.
숫자 그룹을numbers 함수의 매개 변수에 전달합니다.
console.log(numbers([1,4,3,9]))
다음은numbers의 함수입니다.
const numbers = (arr) => {
  const downToUp = arr.sort((a,b) => (a < b ? -1 : 1 ));
  const upToDown = arr.sort((a,b) => (a < b ? 1 : -1));
  return [...downToUp, ...upToDown]
} 
여기서 나는 매개 변수로 건네준 진열 내의 수치를 말한다.sort() 방법은 두 번 사용하고 두 개의 승차순과 강차순의 배열을 생성한 후 하나의 배열로 결합할 계획이다.그러니까 되돌아오는 값은...
[1,3,4,9,9,4,3,1]
이지만 실제 반환값은
[ 9, 4, 3, 1, 9, 4, 3, 1]
.이곳은 파괴적인 방법의 주의점이다.
처음sort() 방법을 사용할 때 원시 배열된 매개 변수arr의 배열 순서는 승차순이고 그 다음 두 번째입니다.sort () 방법을 사용할 때, 원래 배열된 매개 변수arr의 배열 순서는 내림차순으로 변하고, const downToUp도 오름차순이어야 하지만, 내림차순으로 변한다.
이 때 원수 그룹을 복사해야 합니다.
const numbers = (arr) => {
  const copy = [...arr]
  const downToUp = arr.sort((a,b) => (a < b ? -1 : 1 ));
  const upToDown = copy.sort((a,b) => (a < b ? 1 : -1));
  return [...downToUp, ...upToDown]
} 

console.log(numbers([1,4,3,9])) //[1, 3, 4, 9, 9, 4, 3, 1]
문제는 전자 표를 사용하여 수조를 생성하는 복사를 통해 해결된다.이런 상황에서 문제는 해결됐지만 파괴적인 방법으로 원래의 배열을 바꾸는 것은 위험하다고 생각하기 때문에 파괴적인 방법을 자주 사용할 때는 복제된 배열을 생성하는 것이 좋다고 생각합니다.
무슨 의견이 있으면 듣고 싶어요.

좋은 웹페이지 즐겨찾기