2011-09-16 9 views
1

私はjavascriptを学んでいて、本当に始まったばかりです。FirefoxでFirebug Extensionを使用していくつか試してみます。誰かがこの理論が正しいかどうかを確認できますか? - Javascript&Arrays

私は2 VAR(iables)を設定していると第二1は最初の1からの値を使用しています

var multipleValues = [10,20,30,40,50] ; 
var reverse = multipleValues.reverse();` 

今、私はif文を経由して、その配列からデータを取得し、そのようなアラートを作成したいです:今ここに

if (multipleValues [1] == 20) { 
alert("Value is there."); 
} 
else { 
alert("Value is not there"); 
} 

は私の質問です - 私はこのようなコードを実行すると、それは私に「他」オプションが用意されていますどのように来るが、私はvar reverseをコメントアウトするとき、それは正しいとまで来ますか?

私は、私は後でそれにアクセスすることができます開始時に変数を宣言したと思ったが、逆のオプションを使用してそれをキャンセルするようだ?私は理論を誤解していますか?

乾杯

答えて

3

The reverse methodは、アレイを所定の位置に(アレイも戻しながら)変更する。代わりに、このような何かを試してみてください:

var reversed = multipleValues.slice(0).reverse(); 
+0

これは私に両方のオプションを与えます:-)私はスライスオプションを今も見ています - ちょうど私はそれを理解することを学びます:-) –

2

reverse()は場所で配列を反転させます。

var x = [1,2,3]; 
x.reverse(); 
console.log(x); //Now returns [3,2,1] 

したがって、元の配列を変更しないでそのままにしておくと、元の配列は元に戻されます。 は、反転配列の値を返します。したがって、multipleValuesreverseの両方が逆の値に設定されています。

JavaScriptが矛盾する可能性があります。ネイティブメソッドの中には、呼び出し元を変更せず、代わりに値(たとえば、String.prototype.split)を返すものもあります。一部のネイティブメソッドは、呼び出し元を変更し、関連する値を返しません(Array.prototype.splice)。このようないくつかのネイティブメソッドは、Array.prototype.reverseの両方を実行します。

ドキュメントを読むことが何であるかを知るための信頼できる方法です。私は、次のようなreverse()を記述するMozilla Developer Networkを、お勧め:

逆方法は、代わりに、呼び出し元の配列オブジェクト の要素を転置配列を変異、及び配列への参照を返します。

2

Array.reverse()は破壊的で、元の配列を変更します。また、2つのオブジェクトが互いに等しくなるように、配列への参照を返します。

+0

最初に - 私は素早い答えでびっくりしました:-) これは完全な意味合いがあります:-) –

関連する問題