13

javacsript に keyValue コンストラクターの 3 つのオブジェクトの配列があります。

  function keyValue(key, value){
    this.Key = key;
    this.Value = value;
  };

  var array = [];
  array.push(new keyValue("a","1"),new keyValue("b","2"),new keyValue("c","3"));

keyValue object as parameterまた、配列内のそのオブジェクトの値を取得して更新する関数「Update」もあります。

  function Update(keyValue, newKey, newValue)
  {
    //Now my question comes here, i got keyValue object here which i have to 
    //update in the array i know 1 way to do this 

    var index = array.indexOf(keyValue);
    array[index].Key = newKey;
    array[index].Value = newValue; 
  }

しかし、もしあれば、これを行うためのより良い方法が欲しいです。

4

6 に答える 6

20

「しかし、これを行うためのより良い方法を知りたいのですが、もしあれば?」

はい、元のオブジェクトを既に持っているように見えるので、配列から再度取得する理由はありません。

  function Update(keyValue, newKey, newValue)
  {
    keyValue.Key = newKey;
    keyValue.Value = newValue; 
  }
于 2012-10-25T13:28:28.483 に答える
15

オブジェクト1を使用してみませんか?

var dict = { "a": 1, "b": 2, "c": 3 };

次に、そのように更新できます

dict.a = 23;

また

dict["a"] = 23;

特定のキーを削除したくない場合は、次のように簡単実行できます。

delete dict.a;

1キーと値のペアについては、Javascriptのオブジェクトと配列を参照してください。
2deleteオペレーターを参照してください。

于 2012-10-25T13:31:24.177 に答える
8
function Update(key, value)
{    
    for (var i = 0; i < array.length; i++) {
        if (array[i].Key == key) {
            array[i].Value = value; 
            break;
        }
    }
}
于 2012-10-25T13:32:18.683 に答える
3

どうですか;

function keyValue(key, value){
    this.Key = key;
    this.Value = value;
};
keyValue.prototype.updateTo = function(newKey, newValue) {
    this.Key = newKey;
    this.Value = newValue;  
};

array[1].updateTo("xxx", "999");   
于 2012-10-25T13:35:02.803 に答える