JS で元の配列を変更する 7 つの方法

目次

ひとつ、押してください

 2、ポップ

3、シフト解除

4、シフト

5、スプライス

6、並べ替え

セブン、リバース


ひとつ、押してください

配列の末尾に要素を追加し、新しい長さを返します。

let arr = [1]
arr.push(2)
console.log(arr)  // [1, 2]

 2、ポップ

配列の最後の要素を削除し、削除された要素を返します。

let arr = [1, 2]
arr.pop()
console.log(arr)  // [1]

3、シフト解除

配列の先頭に要素を追加し、新しい長さを返します。

let arr = [1]
arr.unshift(2)
console.log(arr) // [2, 1]

4、シフト

配列の最初の要素を削除し、削除された要素を返します。

let arr = [1, 2]
arr.shift()
console.log(arr)  // [2]

5、スプライス

 配列内の一部の要素を削除、追加、および置換するために使用され、削除または置換された要素の配列を返します。

1)、追加

let arr = [1, 2, 3, 4, 5]
let arr1 = arr.splice(2, 0, 'haha')
console.log(arr1)  //[1, 2, 'haha', 3, 4, 5]新增一个元素

2)、削除

let arr = [1, 2, 3, 4, 5]
let arr2 = arr.splice(2, 3)
console.log(arr2)  //[1, 2] 删除三个元素

3)、交換します

let arr = [1, 2, 3, 4, 5]
let arr3 = arr.splice(2, 1, 'haha')
console.log(arr3)  //[1, 2, 'haha', 4, 5] 替换一个元素

6、並べ替え

配列の要素をソートし、ソートされた配列を返します。

  • 基本的な使い方
let arr = [1,5,3,7,6];
let n = arr.sort();
console.log(arr); // [1, 3, 5, 6, 7]
console.log(n); // [1, 3, 5, 6, 7]
  • 次の例を見てください
let arr = [6,8,1,30,5];
arr.sort();
console.log(arr); // [1, 30, 5, 6, 8]

上記の分類結果を見ると、私自身の想像の結果ではなく、感情的でなく奇妙です。実際、配列sortメソッドにパラメータが渡されない場合、並べ替え順序のデフォルトでは、並べ替えるデータを文字列に変換し、順序に従って並べ替えます。そのため、Unicodeここでのsortデフォルトの並べ替えは、値による並べ替えではなく、値による並べ替えを実現します。 value比較関数を渡す必要があります。この関数は 2 つの値の大きさを比較し、2 つの値の相対的な順序を表す数値を返します。具体的には、ソート原理は、v8 エンジンの挿入ソートとクイック ソート、およびv8 エンジンのソートのソース コードです。配列の長さが 10 以下の場合は挿入ソートを使用し、配列の長さが 10 を超える場合はクイック ソートを使用します。

比較関数には 2 つのパラメータ a と b があり、その戻り値は次のとおりです。

a が b より小さい場合、つまり a - b が 0 より小さい場合、0 より小さい値が返され、配列は昇順にソートされます。

a が b に等しい場合、0 が返され、配列の順序は変更されません。

a が b より大きい場合、つまり a - b が 0 より大きい場合は、0 より大きい値を返し、配列は降順で並べ替えられます。

let arr = [1,5,3,7,6];
arr.sort((a,b) => 0);
console.log(arr); // [1, 5, 3, 7, 6]
arr.sort((a,b) => a - b);
console.log(arr); // [1, 3, 5, 6, 7]
arr.sort((a,b) => b - a);
console.log(arr); // [7, 6, 5, 3, 1]

セブン、リバース

配列内の要素の順序を逆にして、新しい配列を返します。

let arr = [1, 2, 3, 4];
arr.reverse()
console.log(arr)  // [4, 3, 2, 1]

おすすめ

転載: blog.csdn.net/qq_52421092/article/details/130513269