猿问

javascript - 如何“连接”属性

我正在从 json 中检索三个.js 场景的值。

现在我想将像“position.x:1”这样的数据转换为object[position][x]=1。

对象 [ 键 ] = 值不起作用。显然,它使它成为对象 [ position.x ] = 1。

我将如何做到这一点或这种程序如何被称为?


慕勒3428872
浏览 109回答 2
2回答

皈依舞

没有内置功能。但是有很多第三方模块可用于此任务。例如,您可以使用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还有很多 其他的 选择 。

摇曳的蔷薇

你可以这样做:var string = "position.x : 1";var split = string.split(/\.|\:/);   // split the strig into an array by '.' and ':'var obj = {};                        // result objectfunction 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 valuesconsole.log( obj );                  // print the whole result objectconsole.log( obj['position']['x'] ); // print obj['position']['x']
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答