Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS将字符串转换为多维对象键_Javascript - Fatal编程技术网

Javascript JS将字符串转换为多维对象键

Javascript JS将字符串转换为多维对象键,javascript,Javascript,我有一个字符串,例如: convert.lamp.stamp.glass.nose 我想创建一个对象键“鼻子”(坦克对象已经创建): 我该怎么做 我用split得到了一个数组 values = 'convert.lamp.stamp.glass.nose'.split('.'); 现在我不知道如何使用jquery的each方法来创建这些键。您可以拆分字符串并将其用作对象的键 本提案使用 如果对象不存在,则为默认值v |{} var object={convert:{lamp:{s

我有一个字符串,例如:

convert.lamp.stamp.glass.nose 
我想创建一个对象键“鼻子”(坦克对象已经创建):

我该怎么做

我用split得到了一个数组

values = 'convert.lamp.stamp.glass.nose'.split('.');

现在我不知道如何使用jquery的each方法来创建这些键。

您可以拆分字符串并将其用作对象的键

本提案使用

  • 如果对象不存在,则为默认值
    v |{}
var object={convert:{lamp:{stamp:{glass:{nose:42}}},
路径='convert.lamp.stamp.glass.nose',
value=path.split('.').reduce(函数(v,k){
返回(v |{})[k];
},对象);

console.log(值)您可以执行以下操作,但是您还应该为最后一个属性提供一个值,即
nose
。我已经为此做了一个Object.prototype方法,名为
Object.prototype.setNestedValue()
,它将允许您动态地完成这项工作。它将采用一个字符串或整数数组,这些字符串或整数将用作嵌套属性,数组中的最后一项将用作值。如果数组项是整数,它将生成一个数组对象

Object.prototype.setNestedValue=函数(…a){
a、 长度>2?此[a[0]]的类型==“对象”&此[a[0]!==null?此[a[0]]。setNestedValue(…a.slice(1))
:(此[a[0]]=a[1]==“字符串”?{}:新数组(a[1]),的类型,
此[a[0]].setNestedValue(…a.slice(1)))
:此[a[0]]=a[1];
归还这个;
};
var坦克={};
props=“convert.lamp.stamp.glass.nose”。拆分(“.”);
push(100)//让我们给nose属性赋值
储罐。设置嵌套值(…道具);

log(JSON.stringify(tank,null,2))有74个代表(除非你改变你的问题,否则很快就会少很多),你应该知道如何提问。请发布代码和effortHello,谢谢编辑:)这仍然不是一个好问题。请展示你的努力。您需要split或map
var newstr='tank[“'+str.split(“.”)。join('“][“)+”)我想要对象,而不是字符串。
values = 'convert.lamp.stamp.glass.nose'.split('.');