2016-11-17 10 views
1

、クロームコンソール:`--array.length`が配列の最後の要素を削除するのはなぜですか? JavaScriptでは

var test = [0, 1, 2, 3, 4] 
> undefined 
var lastIdx = --test.length 
> undefined 
lastIdx 
> 4 
test 
> [0, 1, 2, 3] 
var lastIdx = --(test.length) 
> undefined 
lastIdx 
> 3 
test 
> [0, 1, 2] 

すでに見たように、私はちょうど--array.lengthを通じて、配列の最後のインデックスを取得したいが、残念ながら、配列の最後の要素が予期せずに削除されます、本当に理解することはできませんどのようにこれが起こるか/起こるべきか、誰かが説明することができますか?

+0

「 - 」は、「この番号よりも1つ小さい」という意味ではありません。それはあなたがそれを適用するものを減らします。 – user2357112

+0

いつものように、JSと彼の奇妙なもの... – felipsmartins

+0

use var lastIdx = test.length - 1 –

答えて

3

--xは、xをデクリメントし、新しい値を返します。 (x--xをデクリメントし、古い値を返します。)だから、--test.lengthは、あなただけの長さを変更することなく、最後のインデックスを取得したい場合は、それはtest.length - 1だろう1.

によって長さを低減します。

+1

つまり、 'array.length = array.length - 1' –

関連する問題