为了账号安全,请及时绑定邮箱和手机立即绑定

javascript - 如何“连接”属性

javascript - 如何“连接”属性

慕勒3428872 2022-07-08 10:00:34
我正在从 json 中检索三个.js 场景的值。现在我想将像“position.x:1”这样的数据转换为object[position][x]=1。对象 [ 键 ] = 值不起作用。显然,它使它成为对象 [ position.x ] = 1。我将如何做到这一点或这种程序如何被称为?
查看完整描述

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还有很多 其他的 选择 。


查看完整回答
反对 回复 2022-07-08
?
摇曳的蔷薇

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']


查看完整回答
反对 回复 2022-07-08
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信