JavaScript에서 등분수 배열 구현

coldplay.xixi
풀어 주다: 2020-12-14 17:07:04
앞으로
3573명이 탐색했습니다.

JavaScript 칼럼에서는 등분수 배열을 구현하는 방법을 소개합니다

JavaScript에서 등분수 배열 구현

관련 무료 학습 권장 사항: javascript(동영상)

이 튜토리얼에서는 Array.splice()를 사용하는 방법을 알아보겠습니다. 메서드는 배열을 동일한 부분으로 나눕니다. 또한 Array.splice()Array.slice()의 차이점에 대해서도 설명합니다. Array.splice()方法将数组等分,还会讲一下,Array.splice()Array.slice() 它们之间的不同之处。

1. 将数组分为两个相等的部分

我们可以分两步将数组分成两半:

  1. 使用length/2Math.ceil()方法找到数组的中间索引

  2. 使用中间索引和Array.splice()方法获得数组等分的部分

Math.ceil() 函数返回大于或等于一个给定数字的最小整数。

const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.splice(0, middleIndex);   
const secondHalf = list.splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // []
로그인 후 복사

Array.splice() 方法通过删除,替换或添加元素来更改数组的内容。 而 Array.slice() 方法会先对数组一份拷贝,在操作。

  • list.splice(0, middleIndex) 从数组的0索引处删除前3个元素,并将其返回。
  • splice(-middleIndex)从数组中删除最后3个元素并返回它。

在这两个操作结束时,由于我们已经从数组中删除了所有元素,所以原始数组是空的。

另请注意,在上述情况下,元素数为偶数,如果元素数为奇数,则前一半将有一个额外的元素。

const list = [1, 2, 3, 4, 5];
const middleIndex = Math.ceil(list.length / 2);

list.splice(0, middleIndex); // returns [1, 2, 3]
list.splice(-middleIndex);   // returns [4, 5]
로그인 후 복사

2.Array.slice 和 Array.splice

有时我们并不希望改变原始数组,这个可以配合 Array.slice() 来解决这个问题:

const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.slice().splice(0, middleIndex);   
const secondHalf = list.slice().splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // [1, 2, 3, 4, 5, 6];
로그인 후 복사

我们看到原始数组保持不变,因为在使用Array.slice()删除元素之前,我们使用Array.slice()复制了原始数组。

3.将数组分成三等分

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const threePartIndex = Math.ceil(list.length / 3);

const thirdPart = list.splice(-threePartIndex);
const secondPart = list.splice(-threePartIndex);
const firstPart = list;     

console.log(firstPart);  // [1, 2, 3]
console.log(secondPart); // [4, 5, 6]
console.log(thirdPart);  // [7, 8, 9]
로그인 후 복사

简单解释一下上面做了啥:

  1. 首先使用st.splice(-threePartIndex)提取了ThirdPart,它删除了最后3个元素[7、8、9],此时list仅包含前6个元素[1、2、3、4、5、6]

  2. 接着,使用list.splice(-threePartIndex)提取了第二部分,它从剩余list = [1、2、3、4、5、6](即[4、5、6])中删除了最后3个元素,list仅包含前三个元素[1、2、3],即firstPart

    1. 배열을 두 개의 동일한 부분으로 나눕니다.
두 단계에 따라 배열을 두 부분으로 나눌 수 있습니다.

length/2Math를 사용하세요. .ceil() 메소드는 배열의 중간 인덱스를 찾습니다.

  • 중간 인덱스와 Array.splice() 메소드를 사용하여 균등하게 분할된 배열 부분을 가져옵니다.

    Math. ceil() 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다.

    const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    로그인 후 복사

    Array.splice() 메서드는 요소를 제거, 교체 또는 추가하여 배열의 내용을 변경합니다. Array.slice() 메서드는 작동하기 전에 먼저 배열의 복사본을 만듭니다.

    • list.splice(0, middleIndex) 배열의 0 인덱스에서 첫 번째 3 요소를 삭제합니다. 그리고 그것을 반환하십시오.

    • splice(-middleIndex)배열에서 마지막 3 요소를 제거하고 반환합니다.
    두 작업이 끝나면 배열에서 모든 요소가 제거되었으므로 원래 배열은 비어 있습니다.

    또한 위의 경우 요소 수가 짝수인 경우, 요소 수가 홀수인 경우 전반부에 추가 요소가 발생한다는 점에 유의하세요.

    list.slice().splice(0, 1) // [1]
    로그인 후 복사
    2.Array.slice 및 Array.splice


    때로는 원래 배열을 변경하고 싶지 않을 때가 있습니다. 이를 Array.slice()와 함께 사용하면 이 문제를 해결할 수 있습니다.

    list.slice().splice(0, 5) // [1, 2, 3, 4, 5]
    로그인 후 복사
    원래 배열이 Array.slice()를 사용하여 요소를 제거하기 전에 Array.slice()를 사용하여 원본 배열의 복사본을 만들기 때문에 변경되지 않은 상태로 유지됩니다. 3. 배열을 세 개의 동일한 부분으로 나눕니다.
    list.slice().splice(5) // 6, 7, 8, 9]
    로그인 후 복사
    위에서 수행한 작업을 간략하게 설명합니다. 🎜
    1. 🎜 먼저 st.splice(- threePartIndex)를 사용하여 ThirdPart를 추출합니다. 마지막 3개 요소 [7, 8, 9]는 삭제됩니다. 이때 list에는 처음 6개 요소 [1, 2, 3, 4, 5,6]. 🎜🎜
    2. 🎜그런 다음 list.splice(- threePartIndex)를 사용하여 나머지 list = [1, 2, 3, 4, 5, 6] 마지막 세 요소는 (예: [4, 5, 6])에서 삭제되고 목록에는 처음 세 요소 [1, 2, 3]만 포함됩니다. 즉, 첫 번째 부분. 🎜🎜🎜🎜4. Array.splice()의 추가 용도🎜🎜이제 Array.splice()의 추가 용도를 살펴보겠습니다. 여기서는 원본 배열을 변경하고 싶지 않기 때문에 Array를 사용합니다. Slice().원래 배열을 변경하려면 삭제할 수 있습니다. 🎜
      list.slice().splice(-1)   // [9]
      로그인 후 복사
      🎜🎜배열의 첫 번째 요소 가져오기🎜🎜
      list.slice().splice(-3)   // [7, 8, 9]
      로그인 후 복사
      🎜🎜배열의 처음 5개 요소 가져오기🎜🎜rrreee🎜🎜배열의 처음 5개 요소 다음의 모든 요소 가져오기🎜🎜rrreee🎜🎜마지막 요소 가져오기 of the array🎜 🎜rrreee🎜🎜배열의 마지막 세 요소 가져오기🎜🎜rrreee🎜🎜🎜코드 배포 후 발생 가능한 버그를 실시간으로 알 수는 없습니다. 이러한 버그를 나중에 해결하려면 많은 시간이 소요되었습니다. 그런데 유용한 BUG 모니터링 도구인 Fundebug를 모든 사람에게 추천하고 싶습니다. 🎜🎜🎜🎜
  • 위 내용은 JavaScript에서 등분수 배열 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:csdn.net
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!