2

次のことを考慮してください。

 var service_call_array = { 
     3 : 'test',
     4 : 'more of a test eh?',
     5 : 'more info required'
 }; 

私はそれをループすることができます

$(function() { 
   $.each(service_call_array, function(key, value) {
        alert(key + ':' +value);
   }
});

しかし、原則として、4番目のアイテムkey:valueを追加する方法、キーごとに値を更新または編集または変更する方法(key:4など)キーを参照して削除する方法、および要素の値を参照する方法ループせずにキーで?

前もって感謝します

4

3 に答える 3

4

まず第一に、それはオブジェクトであり、配列ではありません。配列は数値インデックスのみを持つことができ、.lengthプロパティなどの特別なセマンティクスを持つことができます。今、あなたの質問に答えるために。

あなたが持っているのは、昔ながらのJavaScriptオブジェクトであり、それにプロパティを割り当てています。MDNにはそれらに関する完全なページがあります。要約は次のとおりです。

プロパティへのアクセス

o.keyまたはo["key"]構文を使用します。次に例を示します。

var object = {
    foo: "bar"
};
alert(object.foo); // displays "bar"

このo["key"]構文は、オブジェクトをルックアップテーブルとして使用する場合に特に便利です。次に例を示します。

var translate = {
    "hello": "bonjour",
    "goodbye": "au revoir"
};
var word = "hello"; // received through some kind of user input
alert(translate[word]); // displays "bonjour"

プロパティの設定

プロパティへのアクセスに似ていますが、割り当ての左側に配置します。プロパティがすでに存在するかどうかは関係ありません。必要に応じて作成されます。

var object = {};
object.foo = "bar";
alert(object.foo); // still "bar"

プロパティの削除

deleteステートメントを使用します。

var object = {
    foo: "bar"
}
alert(object.foo); // displays "bar"
delete object.foo;
alert(object.foo); // displays "undefined"
alert(object.foo === undefined); // displays true
于 2012-06-26T11:43:40.160 に答える
1

まず、数値でインデックスを作成する場合は、オブジェクト{}を使用せず、配列を使用します[]

次に、次のような新しいアイテムを追加します。

var obj = {};
obj.newItem = 'newItem';        // You can use the dot syntax when your member
                                // name is a valid identifier.
obj['new Item 2'] = 'newItem2'; // Or, you can use the bracket notation if it 
                                // isn't.

var arr = [];
arr[0] = 'firstItem';           // Use the bracket syntax.
arr[42] = 'anotherItem';        // The indices don't have to be contiguous.

値にアクセスまたは更新するには、同様の構文を使用します。すべての値は動的であるため、初めて追加する場合でも更新する場合でも、構文的には同じです。

var a = obj.newItem;            // Access with dot syntax
var b = obj['new Item 2'];      // Access with bracket syntax

obj.newItem = 'updatedValue'    // Update with new value using dot syntax
obj['new Item 2'] = 42          // Update with new value using bracket syntax
                                // Note that the type of the value doesn't have
                                // to remain the same.

実際に値を削除deleteするには、次のキーワードを使用します。

delete obj.newItem;             // Now, obj.newItem is undefined again.
于 2012-06-26T11:38:00.370 に答える
1

を呼び出すことで参照を取得し、service_call_array.keyそれを使用して更新または実行できます。

追加:

service_call_array.key = 'newValue';
service_call_array[key] =  'newValue';

削除:

delete service_call_array.key;
delete service_call_array[key];
于 2012-06-26T11:40:21.803 に答える