2 回答
TA贡献1851条经验 获得超3个赞
没有内置功能。
但是有很多第三方模块可用于此任务。
例如,您可以使用lodash's _.set。文档在这里,您也可以单独使用它而无需添加完整lodash的包,而是使用lodash.set包。
例如,来自文档:
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.set(object, 'a[0].b.c', 4);
console.log(object.a[0].b.c);
// => 4
_.set(object, ['x', '0', 'y', 'z'], 5);
console.log(object.x[0].y.z);
// => 5
如果你不喜欢,_.set还有很多 其他的 选择 。
TA贡献1793条经验 获得超6个赞
你可以这样做:
var string = "position.x : 1";
var split = string.split(/\.|\:/); // split the strig into an array by '.' and ':'
var obj = {}; // result object
function getObject(split) {
obj[split[0].trim()] = {};
obj[split[0].trim()][split[1].trim()] = split[2].trim();
}
getObject(split); // call the function and pass the array of values
console.log( obj ); // print the whole result object
console.log( obj['position']['x'] ); // print obj['position']['x']
添加回答
举报