我有一个可变的 json 对象(可能有无限的子结构):
var myObject={
s1:{
s2:'2',
s3:'3'
},
s4:'4',
s5:{
s6:undefined
},
s7:'7'
};
我想找到第一个未定义的成员并返回它的引用, 能够随时修改它(通过事件触发的功能)
function findFirstUndefined(obj){
for (var key in obj){
if (typeof(obj[key]) === 'object'){
var recursion=findFirstUndefined(obj[key])
if (recursion!==false){
return recursion;
}
}
else if (obj[key]===undefined){
return obj[key];
}
}
return false;
}
但它不返回成员的引用,而是它的值:
var subObj=findFirstUndefined(myObject);
subObj="my updated cool var!!";
不修改对象。
我发现像 JsonPath 这样的库可以解决问题, 但对于这样一个简单的任务,我觉得有点重。
难道不存在一种优雅的方式来做到这一点吗?谢谢!
最佳答案
JS 不会那样做。您可以改为返回一个将分配给缺失条目的函数吗?
return function(v) { obj[key] = v; };
关于javascript - 在javascript中通过引用返回对象的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503653/