1. ホーム
  2. javascript

[解決済み] JavaScriptの配列における負のインデックスは配列の長さに寄与するか?

2023-03-26 12:30:55

質問

javascriptで、次のような配列を定義しています。

var arr = [1,2,3];

も可能です。

arr[-1] = 4;

ここで、もし私が

arr = undefined;

での値への参照も失われています。 arr[-1] の値への参照も失われています。 .

ということで、論理的には arr[-1] も arr .

しかし、以下のようにすると(arrをundefinedに設定せずに)。

arr.length;

これは 3 ではなく 4 ;

つまり、私が言いたいのは 配列が負のインデックスで使用できる場合。 これらの負のインデックスもその長さ**の一部であるべきだということです。 私は間違っているかもしれませんし、私は配列に関するいくつかの概念を見逃している可能性があります知りません。

どのように解決するのですか?

論理的にはarr[-1]もarrの一部であるように思えるのですが。

そうです、しかしあなたが考えているような方法ではありません。

配列には任意のプロパティを割り当てることができます(JavaScript の他のオブジェクトと同じように)。 -1 で配列に "index" して値を代入しているのがそれです。これは配列のメンバではなく、単なる任意のプロパティであることから length にそのプロパティを考慮させるべきではありません。

つまり、以下のコードでも同じことができます。

​var arr = [1, 2, 3];

​arr.cookies = 4;

alert(arr.length) // 3;