8

JavaScript の配列はオブジェクトに他ならないことを知っています。そのような配列を定義すると:

var array;
array = [ "a", "b", "c" ];

そして走る

Object.keys(array);

次の配列を取得します: ["0", "1", "2"]. の配列の長さはarrayです3

次のようなプロパティを追加すると:

array["a"] = "d";

Object.keys()は を返し["0", "1", "2", "a"]ていますが、 の配列の長さarrayはまだ3です。

しかし、そのようなプロパティを追加すると:

array["3"] = "d";

の長さarrayは現在4です。

が単なる別のオブジェクトである場合array、オブジェクトをゼロから開始するときに、どのようにそのような動作を実現できますvar myArray = {}か?

4

2 に答える 2

1

.lengthプロパティには、数値インデックスを持つプロパティ、特にゼロ以上の整数値を持つプロパティのみが含まれます。

配列またはオブジェクトからすべてのキーの合計数を取得する方法を尋ねている場合は、次のようにすることができます。

Object.keys(array).length

...Object.keys()それ自体が.lengthプロパティを持つ配列を返すので。

于 2012-08-23T13:00:52.047 に答える
1

配列のlengthプロパティは、最大の数値インデックス + 1 の値です。

したがってarray["3"] = "d";、最大の数値インデックスの後3、長さが返されます4

Object.keys(array).length長さを与える必要があります。

于 2012-08-23T13:05:00.297 に答える