Javascript 使用数组操作和使用Lodash的对象操作动态创建大型JSON

Javascript 使用数组操作和使用Lodash的对象操作动态创建大型JSON,javascript,angularjs,arrays,json,lodash,Javascript,Angularjs,Arrays,Json,Lodash,最终输出样本 { "triggers": [{ "all": [{ "any": [{ "equation": { "equation array of object" } }, { "equation": { "equation array of object"

最终输出样本

{
  "triggers": [{
    "all": [{
        "any": [{
               "equation": {
                  "equation array of object"
               }
            },
            {
             "equation": {
              "equation array of object"
             }
        }],
        "all": [{
            "equation": {
              "equation array of object"
           }
        }]
    }]
 }]
}
该方程由使用以下函数创建的数组构成

第1部分:任意一个方程式的样本输出

   equation: {
      "equation array of object"
    }
上面的方程等价于下面的方程,其形式如下

    this.numberEquation.push({
      resourceLeft: this.model1,
      arthop: this.model2,
      resourceCenter: this.model3,
      logicalop: this.model4,
      resourceRight: this.model5,
    }); 
第2部分:对象数组的示例输出

     "any": [{
               "equation": {
                  "equation array of object"
               }
            },
            {
             "equation": {
              "equation array of object"
             }
        }],
在这里,我使用了下面的格式来创建它

是否有一种方法可以通过使用循环而不是数组的[0]和[1]符号来动态实现这一点

      this.wholeNumberEquation.push({
        any: [{
          number_equation: this.numberEquation[0],
            },
          {
          number_equation: this.numberEquation[1],
          },
        ],
      });
这是方程式3,由方程式3位置生成

第3部分:样本输出

        "all": [{
            "equation": {
              "equation array of object"
           }
        }]
 "all": [{
    "any": [{
           "equation": {
              "equation array of object"
           }
        },
        {
         "equation": {
          "equation array of object"
         }
    }],
    "all": [{
        "equation": {
          "equation array of object"
       }
    }]
}]
这是产生上述结果的方程式

        this.equationthree.push({
          all: [{
            number_equation: this.numberEquation[2],
          }],
        });
最后一块是整个方程的

第4部分:样本输出

        "all": [{
            "equation": {
              "equation array of object"
           }
        }]
 "all": [{
    "any": [{
           "equation": {
              "equation array of object"
           }
        },
        {
         "equation": {
          "equation array of object"
         }
    }],
    "all": [{
        "equation": {
          "equation array of object"
       }
    }]
}]
是使用下面的代码形成的

      this.final = [{
          all: _.merge(this.wholeNumberEquation, this.equationthree),
        }];
最后,根据所需样本最终输出初始状态的整个输出为

 "triggers": [{
    "all": [{
      "any": [{
           "equation": {
              "equation array of object"
           }
        },
        {
         "equation": {
          "equation array of object"
         }
      }],
    "all": [{
        "equation": {
          "equation array of object"
       }
     }]
  }]
}]
第5部分:实现这一点的实际代码如下

  this.finalJSON = {
   triggers: [{
      this.final, 
     }]
 }

我无法使用循环来填充JSON,如果方程式比NumberRequation中的三个方程式更大,它就不会接受它,也不会工作。如代码所示,JSON可以工作。但是还有更多的方程,比如5方程。我必须为4和5创建另一个if条件,并生成JSON。然而,如果有一个动态的方法来创建它,从数字方程使用循环,这将是伟大的。如果你建议一个更好的方法,这将是真正的帮助

我不明白为什么你不能使用循环。错在哪里?怎么可能?我很累,但它不像需要创建的示例输出那样插入json,它需要随数字方程一起动态创建。有没有一种方法可以使用循环而不是[0]或[1]或[2]表示法来创建json