2016-12-07 14 views
1
function A(){ 
    //how to alter persist to false here? 
    B(obj.options); 
} 

function B(options){ 
    if(options.persist === true){ //do something } 
} 

入れ子オブジェクトの値を変更したいと思います。私は1行で行うことができますが、多くのオプションのオブジェクトがあればどうしますか?それは、機能拡張のjQueryを使用して..私はそれをobj.options.aobj.options.bobj.options.cなどを行う必要がありjavascriptのオブジェクト値を上書きする

+0

を書くことができるだけでなく、データまたはデータの一部を追加してください。 –

答えて

4

醜い:あなたはjQueryのを使用したくない場合は、Object.assignを使用することができます

var object1 = { a: false, b: 1, c: 2 }; 
var object2 = { a: true, b: 2 }; 

jQuery.extend(object1 , object2); 
+0

それはどんな深さでも動作しますか? – Mahi

+0

はい、 'jQuery.extend([deep]、target、object1 [、objectN])'真の場合、マージは再帰的になります(別名ディープコピー)。 –

1

を - それはES6の一部です。蒸散器を使用しない場合はsupported in most environmentsとなります。署名はjQuery.extendと非常によく似ています:

Object.assign({}, object1, object2, { some: { nested: value }}); 

それともES6とあなたが本当にオブジェクトの割り当てを必要としない、あなたも

const newObj = { ...oldObj, { keyToOverwrite: value }}; 
関連する問題