2

次のようにオブジェクトを作成します。

var savingArray = new Array({doctorId: "something", username: "something", password: "something", givenName: "something", familyName: "something", address: "something", zip:"something", emailAddress: "something", phoneNumber: "something", labs: "something", defaultLab: "something"});

今、オブジェクトのすべての値を削除したい...次のような SavingArray になりたい:

savingArray == ({doctorId: "", username: "", password: "", givenName: "", familyName: "", address: "", zip:"", emailAddress: "", phoneNumber: "", labs: {}, defaultLab: ""});

だから私が望むのは、すべての値を動的に "" に変更することだけです..

SavingArray は決して同じオブジェクトを持っていないので、次のようにはできません:

savingArray[0].doctorId = "";
4

6 に答える 6

6
for(var i = 0; i < savingArray.length; i++) {
    var obj = savingArray[i];
    for(var key in obj) {
        obj[key] = '';
    }
}

または、jQuery を使用しているため、その$.each()関数を使用して反復することもできます。

$.each(savingArray, function(i, obj) {
    $.each(obj, function(key, value) {
        obj[key] = '';
    });
});

何かが変更された場合Object.prototype(たとえば、メソッドが追加された場合 - 通常行うべきではないこと)、if(obj.hasOwnProperty(key))チェックを追加し、そのチェックが成功した場合にのみ値を設定する必要があります。

于 2012-06-01T08:20:29.607 に答える
3
savingArray.forEach( function( el ) {
    Object.keys( el ).forEach( function( key ) {
        el[ key ] = '';
    });
});

forEachと を使用した自明なコードObject.keys。もちろん、これは IE6/7/8 では機能しません。

于 2012-06-01T08:26:02.083 に答える
1

jQuery を使用しているので、配列とオブジェクトのループにも使用します。

$.each(savingArray, function(i, item){
  $.each(item, function(key){
    item[key] = "";
  });
});
于 2012-06-01T08:26:06.373 に答える
1
$.each(savingArray, function(index, obj) {
  $.each(obj, function(k, val) {
     obj[k] = "";
  });
});

デモ

于 2012-06-01T08:24:36.817 に答える
1

それはあなたが探しているものですか?

for (var i = 0; i < savingArray.length; i++) {
    for (var key in savingArray[i]) {
        if (savingArray[i].hasOwnProperty(key))
            savingArray[i][key] = "";
    }
}

デモ: http://jsfiddle.net/NfBqn/

于 2012-06-01T08:20:25.240 に答える