配列の追加、削除、置換には配列の splice メソッドを使用します (slice メソッドを区別します)。

配列の splice メソッドを使用して、配列を追加、削除、置換します。

スプライス法を使うためには、まずスライス法を区別する必要がありますが、どちらも配列法であり、メソッド名は似ていますが、機能は異なります。

スライス()インターセプト

スライス()インターセプト

このメソッドは、現在の配列内の 1 つ以上の項目に基づいて新しい配列を作成できます。

インターセプトには、開始位置と終了位置 (終了位置は含まれません) の 1 つまたは 2 つのパラメーターが必要です。パラメータが 1 つだけの場合は、開始位置から終了位置までのすべての項目がインターセプトされます。

パラメータに負の数値がある場合は、配列の長さにパラメータの結果を加えたものを実際のパラメータとして使用します。たとえば、配列の長さが 5 の場合、スライス(-2,-1) はスライス(3,4) と同じ効果があります。終了位置が開始位置より小さい場合は、空の配列が返されます。
let arr = [1,2,3,4,5,6,7]
console.log(arr.slice(1,4));//[2,3,4]
console.log(arr);//[1,2,3,4,5,6,7] 该方法不改变原数组

console.log(arr.slice(1));//[2,3,4,5,6,7]

console.log(arr.slice(-2,-1));//相当于arr.slice(5,6)  输出[6]
console.log(arr.slice(5,6));//输出[6]

//结束位置小于开始位置,返回空数组
console.log(arr.slice(-1,-4));//输出[]
console.log(arr.slice(6,3));//输出[]

スプライス()

splice() 配列の最も強力なメソッドで、削除、追加、置換が可能です。

削除の実現: 2 つのパラメータを指定します。パラメータ 1: 開始位置パラメータ 2: 削除する項目の数 (最初の 2 つの項目を削除する場合は splice(0,2) など)

**追加を実現する: **3 つのパラメータを指定します。パラメータ 1: 開始位置パラメータ 2: 0 (削除する項目の数を表し、0 は挿入のみで削除はしないことを意味します) パラメータ 3: 追加する項目 (追加する項目が複数ある場合は、複数の項目を渡し続けることができます) など、splice(1,0,"22", "99") のように配列の添字 1 から項目を追加します。

** 置換の実現: ** 指定した位置から任意の数の項目を追加し、同時に任意の数の項目を削除するには、3 つのパラメータを指定する必要があります。パラメータ 1: 開始位置パラメータ 2: 削除する項目の数パラメータ 3: 挿入する項目の任意の数。挿入された項目の数は、削除された項目の数と同じである必要はありません。たとえば、 splice(2,1,"k",'l') は、配列の位置 2 にある項目を削除し、位置 2 から新しい要素を挿入します。

splice() メソッドは常に、削除された項目を含む新しい配列を返します。何も削除されなかった場合は空の配列を返します。

削除を達成する

 //实现删除
 let arr = [1,2,3,4,5,6,7]
 console.log(arr.splice(0,2));//[1,2] 返回被删除的元素
 console.log(arr);//[3,4,5,6,7] 该方法会改变原数组

追加を実装する

let arr = [1,2,3,4,5,6,7]
console.log(arr.splice(1,0,100,200));//[]返回空数组,没有被删除的元素
console.log(arr);//[ 1, 100, 200, 2, 3, 4, 5, 6, 7 ]  改变原数组

置き換えを達成する

 let arr = [1,2,3,4,5,6,7]
 console.log(arr.splice(2,1,"hello","world"));//[3]  返回被删除的元素
 console.log(arr);//[1,2,"hello","world",4,5,6,7]
let arr = [1,2,3,4,5,6,7]
console.log(arr.splice(1,6,"hello"));//[2,3,4,5,6,7]  返回被删除的元素
console.log(arr);//[1,"hello"]

おすすめ

転載: blog.csdn.net/m0_48895748/article/details/127612854