配列をいくつかの部分に均等に分割します

1. 配列を 2 つの等しい部分に分割します。

次の 2 つの手順で配列を半分に分割できます。

length/2 と Math.ceil() メソッドを使用して、配列の中間インデックスを見つけます。

中間インデックスと 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 つの要素を削除して返します。

これら 2 つの操作が終了すると、配列からすべての要素が削除されたため、元の配列は空になります。

また、上記の場合、要素の数は偶数ですが、要素の数が奇数の場合、前半に余分な要素が含まれることにも注意してください。

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. 配列を 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]

上記で行われたことを簡単に説明します。

  • まず st.splice(-threePartIndex) を使用して ThirdPart を抽出します。これにより、最後の 3 つの要素 [7, 8, 9] が削除され、リストには最初の 6 つの要素 [1, 2, 3, 4, 5, 6] のみが含まれます。
  • 次に、list.splice(-threePartIndex) を使用して 2 番目の部分が抽出され、残りのリスト = [1, 2, 3, 4, 5, 6] (すなわち [4, 5, 6]) 要素から最後の 3 が削除されます。の場合、リストには最初の 3 つの要素 [1、2、3]、つまり firstPart のみが含まれます。

4. Array.splice() のその他の使用法

それでは、Array.splice() の使用法をさらに見てみましょう。ここでは、元の配列を変更したくないため、Array.slice() を使用します。元の配列を変更したい場合は、削除できます。

1 const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];

配列の最初の要素を取得します

1 list.slice().splice(0, 1) // [1]

获取数组的前5个元素

1 list.slice().splice(0, 5) // [1, 2, 3, 4, 5]

获取数组前5个元素之后的所有元素

1 list.slice().splice(5) // 6, 7, 8, 9]

获取数组的最后一个元素

1 list.slice().splice(-1) // [9]

获取数组的最后三个元素

1 list.slice().splice(-3) // [7, 8, 9]

おすすめ

転載: blog.csdn.net/GL666/article/details/129366363