function A(){
//how to alter persist to false here?
B(obj.options);
}
function B(options){
if(options.persist === true){ //do something }
}
我想改变我的嵌套对象值。我可以用一行来做,但如果我有很多选项的对象怎么办?它很丑陋我必须这样做obj.options.a
,obj.options.b
,obj.options.c
等。
答案 0 :(得分:4)
使用jQuery扩展函数:
var object1 = { a: false, b: 1, c: 2 };
var object2 = { a: true, b: 2 };
jQuery.extend(object1 , object2 );
答案 1 :(得分:1)
如果您不想使用jQuery,可以使用Object.assign - 如果您不使用转换器,则它是ES6和supported in most environments的一部分。签名与jQuery.extend非常相似:
Object.assign({}, object1, object2, { some: { nested: value }});
或者使用ES6,您不需要对象分配,也可以编写
const newObj = { ...oldObj, { keyToOverwrite: value }};