Javascript JS–如何使用字符串中的对象等构建数组的动态嵌套对象

Javascript JS–如何使用字符串中的对象等构建数组的动态嵌套对象,javascript,Javascript,这是一个不错的晚间项目,但实际上我有些头疼 我所需要的只是一个类似以下示例的函数: result = set("itemCategories[0].items[0].name", "Test") 应返回: { itemCategories: [ { items: [ {name: "Test"} ] } }] …对于给定的属性itemCategories[1]。项[2]。请将此结果命名为: { itemCategories: [ null, { ite

这是一个不错的晚间项目,但实际上我有些头疼

我所需要的只是一个类似以下示例的函数:

result = set("itemCategories[0].items[0].name", "Test")
应返回:

{ itemCategories: [
   {
     items: [ {name: "Test"} ] 
   }
}]
…对于给定的属性itemCategories[1]。项[2]。请将此结果命名为:

{ itemCategories: [
  null,
  {
    items: [
      null,
      null, 
      {name: "Test"} 
    ] 
  }
}]
使用:


如果您询问的是香草JavaScript集方法,那么您可以这样做

/* this is what you are trying to get.
{ itemCategories: [
   {
     items: [ {name: "Test"} ] 
   }
}]
*/

var mySet = new Set(); // your set object.
创建数据编号、文本、字符串、对象、数组、空

ver data1 = 365;
ver data2 = 'Dragonfly';
ver data3 = {name: 'Bobby', age: 20000, job: 'dj'};
然后,您只需使用add方法添加到该集合中

mySet.add(data1);
mySet.add(data2);
mySet.add(data3);
所以为了得到你想要的,你可以写下这个

var itms = {items: [{name: 'test'}]};

mySet.add(itms);
集合的优点是它像一个数组。所以你可以用forEach

mySet.forEach( function(val){
    console.log(val); // gets all your data.
});
您甚至可以使用has方法检查数据中是否存在值

mySet.has(365); // true
mySet.has(36500000); as false

您应该能够适应这样做。为什么需要传递字符串?为什么不直接执行itemCategories[0]。items[0]。name=Test?@Shard该字符串是从另一个系统给定的
mySet.has(365); // true
mySet.has(36500000); as false