2017-03-06 6 views
-1

私がされた最初にconsole.log [0,10,20,30]及び[0,100,20,30】される第2の期待:あなたが割り当てるforEachループ内でどのように値を代入しますか?

var arr = [0,10,20,30] 
 
console.log(arr) 
 
arr.forEach(each) 
 
console.log(arr) 
 

 
function each(data,index) { 
 
    if (index === 1) { 
 
     data = 100 // This isn't assigned to arr[1] 
 
    } 
 
}

+0

ARR [インデックス] = 100のコールバックAPIの3を必要とします配列を持たない配列のインデックスに渡します。 –

+0

天気にかかわらず、それは参考になることは決してないので、これはすべてjavascriptで決して起こり得ない各機能またはあらゆる機能です:http://stackoverflow.com/questions/13506398/why-are-objects-values-captured-inside-function-calls/13508654 #13508654 – slebetman

+0

'forEach'はインラインで変更を行いません。あなたはそれを達成するためにマップを使用しなければなりません。 –

答えて

1

を値をローカル変数に設定します。実際のインデックスに割り当てるためには、配列とインデックス、パラメータ2とあなたが割り当てることができませんArray#forEach

var arr = [0,10,20,30] 
 
console.log(arr) 
 
arr.forEach(each) 
 
console.log(arr) 
 

 
function each(data,index, array) { 
 
    if (index === 1) { 
 
     array[index] = 100; 
 
    } 
 
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

関連する問題