マップ方法は、各アレイは、アレイのアレイをループ関数で処理され、処理後の機能を返すことができるであろう。しかし、我々は関数で配列自体を変更した場合、次に何が起こるのだろうか?
VaRの removeElement = 関数(NUMS、ヴァル){ nums.map(関数(項目、インデックス){ 場合(項目=== ヴァル){ にconsole.log(インデックス); // 2 3 nums.splice(インデックス1 )。 } })。 }。 removeElement([ 1,2,3,4,3,5]、3)。
我々は、ケースの1サイクルで元の配列を変更した場合、上記の例から分かるように、その後、次の処理サイクルがアレイに基づいて行われるが変更されました。
VaRの removeElement = 関数(NUMS、ヴァル){ nums.map(関数(項目、インデックス){ IF(項目=== ヴァル){ nums.splice(インデックスは、 1); // 削除インデックスエントリアレイ2 、及び2は、インデックスの項目2となるが、インデックスは2で処理されているので、2このインデックスは、2に至るが除去されない、いかなる処置されていない後。 } }); }; removeElement([ 0、 1,2,2,3,0,4,2]、2)。
上記のコードが配列の場合:[0,1,2,2,2,3,0,4,2]、NUMS [0、1、2、3、0、4] [0の場合、 1,2,2,2,2,3,0,4,2]、NUMS [0、1、2、2、3、0、4]