私にとってこのホワイトフロントエンド、アイデアは、この問題を解決することだけを知って開始:
// 第一种方法 機能削除(ARR、項目){ VARの ARR1 = 新しいアレイ()。 用(VAR i = 0 ; I <arr.length; iは++ ){ 場合(ARR [I] =!アイテム){ arr1.push(ARR [I])。 } } 戻りARR1。 }
その後、他の人が少し見行い、他の方法があることを発見し、途中で学びます:
// 第二の方法:使用して、スプライス及びスライス // スプライス方法は、元の配列を変更するには、転送の新しい配列に元の配列必要 関数remove1(ARR、項目){ // 全ての割り当ての元のデータ配列スライス方式を使用アレイARR1する のvar(ARR1 = arr.sliceを0 ); // スプライス(X、Y):XはYの要素の要素から出発し、削除 するための(VAR I = 0 ;私はarr1.lengthを<; Iは++ ){ IF( ARR1の[I] === アイテム){ arr1.splice(I、1 ); I - ; } } 戻りARR1の; }
// 第三の方法:方法---->のみデータ値関数と一致ARR配列戻りarr.filter(関数)を使用して // オリジナル変化しないフィルタアレイ方式 関数remove2(ARR、項目){ // 第一のフィルタの使用方法 戻りarr.filter(関数(要素){ 返す!ELEMENT = 項目; }) // 第2の方法のフィルタ使用 関数A(要素){ 返す!ELEMENT = 、項目 } 戻り(arr.filterをA); }
すべての3つの方法は、試験します