任何人都可以有更好的解决方案,以使用javascript使用点符号字符串获取和更新嵌套对象的值?我有一个对象说,
let user = {
"fullname": {
"firstname": "abc"
"lastname": "xyz"
}
};
并且我有一个带点符号的字符串,该字符串指示需要获取或更新的密钥,例如 “user.fullname.firstname” 至 “John Doe” 为了更新。最终输出应该是这样的,
{
"fullname": {
"firstname": "约翰·杜"
"lastname": "xyz"
}
}
您可以通过以下方式使用此方法
通过 数据 作为内部对象, 提起 待更新,以及 值 领域的。
nestedObjectGetUpdate(data, field, 值) {
let schema = 数据; // a moving reference 至 internal 对象 within obj
const pList = field.split('.');
const len = pList.length;
for (var i = 0; i < len - 1; i++) {
var elem = pList[i];
if (!schema[elem]) schema[elem] = {}
schema = schema[elem];
}
if (!value) {
return schema[pList[len - 1]];
}
schema[pList[len - 1]] = 值;
}
pre
& code
tags ):