1

そうする

var x = new Array();
x['length']=5;

xを5つの未定義項目の配列にしますが、実際には値「5」をキー「長さ」に格納したいと考えています。

それは可能ですか?

4

5 に答える 5

5

JavaScript 配列にはキーがありません。オブジェクトを探しています:

var x = {}
x.length = 5;
于 2012-06-02T21:10:05.100 に答える
1

多くの単語を含むファイルを解析し、各単語の出現回数を保存する必要があります

オブジェクトを使用し、単語をキーにします。シーケンシャル/順序付けされたデータを保存していないため、配列を使用しないでください。

var word_count = {};
for (var i; i < words.length; i++) {
  var word = words[i];
  if (word_count[word]) {
    word_count[word]++;
  } else {
    word_count[word] = 1;
}
于 2012-06-02T21:12:30.147 に答える
0

配列の代わりにオブジェクトを使用してデータを保存できます。ただし、配列を使用する必要がある場合 (その機能を使用する必要がある場合があります)、単語を無効にして配列キーとして格納できます。

考えられるすべてのキーワードをバイパスするために、何らかの単純なルールに従うようにしてください。たとえば、すべての配列キーの前に「_」文字を付けます。このようにして、最初の文字を削除するだけでキーから元の単語をいつでも復元でき、配列オブジェクトの特定のプロパティ (長さプロパティなど) を参照していないことを確認できます。

于 2012-06-02T21:15:57.553 に答える
0

2 つの異なる構文を使用して、JavaScript オブジェクトのメソッドを呼び出すことができます。メソッドを呼び出す括弧付きの使い慣れた「ドット」構文と、角かっこ構文。構文を使用して、JavaScript オブジェクトのメソッドを「呼び出す」ことができますmyObj["methodname"](args)。これは、文字列を使用してメソッド名を動的に構築する場合に便利です。JavaScript のオブジェクトは、キーがプロパティ名と関数名を表すハッシュ テーブル (辞書) に非常によく似ていることを思い出してください。キーの値が関数を保持している場合は、(括弧を使用して) 呼び出すことができます。

あなたの例では、Array には「length」というメソッドがあります。誤ってセッターを呼び出しています (配列の長さを空の値、つまり未定義に設定します)。

それはさておき、この場合は本当にハッシュ (連想配列) が必要です。配列は、オフセット インデックス付きのデータ構造です。

のような単純なオブジェクト リテラルmyObj = {}は、ハッシュ セマンティクスを提供するのに十分です (ここでも、JavaScript のオブジェクトは既にハッシュに似ています)。myObj.whatever = "some value"

于 2012-06-02T21:21:37.670 に答える
0

これを行いたい場合は、配列ではなくオブジェクトを作成する方がよいでしょう。これにより、必要なものが得られるはずです。

var x = {};
x['length'] = 5;
于 2012-06-02T21:10:43.417 に答える