Javascript 将选中的复选框作为字符串发送到对象内部的数组

Javascript 将选中的复选框作为字符串发送到对象内部的数组,javascript,arrays,angular,typescript,angular8,Javascript,Arrays,Angular,Typescript,Angular8,我有一个复杂的结构对象 JSON{ alpha{ array1[ obj1{}, obj2{} ] } } 除了array1之外,我还想发送另一个数组:array2,它只包含字符串。因此,结构如下所示: JSON{ alpha{ array1[ obj1{},

我有一个复杂的结构对象

JSON{
     alpha{
           array1[
                  obj1{},
                   obj2{}
                 ]
          }
   }
除了
array1
之外,我还想发送另一个数组:
array2
,它只包含字符串。因此,结构如下所示:

JSON{
     alpha{
           array1[
                  obj1{},
                   obj2{}
                 ],
           array2[
                  "string1",
                  "string2"
                 ]
          }
   }
在HTML中,我有两个复选框。如果用户选中复选框,则标志设置为true。现在,对于标志为true的复选框,我想向
array2
发送一个字符串,我想将其推入这个复杂的json结构中

<input type="checkbox" value="ABC" name="ABC" [(ngModel)]="firstThreeAlphabets" (change)=isSelected1($event)>
<input type="checkbox" value="XYZ" name="XYZ" [(ngModel)]="lastThreeAlphabets" (change)="isSelected2($event)>
我成功地将array2推入复杂对象。现在的问题是,abc和xyz总是设置为true,即使我取消选中它。因此,if条件始终为真。因此,我的功能正在崩溃
在TS文件中,我想设置如下内容:如果选择了
firstThreeAlphabets
,我想设置一个变量并分配以下字符串:
前三个字母是a、B、C
,如果选中了第二个复选框,则以下字符串将存储在
array2中:最后三个字母是X、Y,Z
如果选择了两者,我必须将两个字符串发送到
array2
。一旦存储在数组中,我必须将数组推入复杂对象,如图所示,并将最后一个对象传递到post请求中。

根据我的理解,创建一个空数组并将所选值推入该数组。然后在对象中用array2替换该数组。

我对您的代码做了一些更改,请看一看

问题是,我现在在对象中没有任何array2。所以有两件事是:1。如何将选定的值字符串推入array2,然后如何将array2推入实际对象。var tempArray=[];tempArray.push(值1);tempArray.push(值2);然后将这个tempArray添加到您的对象中,比如JSON.alpha['array2']=tempArray;这应该可以解决您的问题。如果没有,请让我知道。您能告诉我如何将value1推送到tempArray中吗。因为,只有选中特定值的复选框时,才必须发送这些值。您能告诉我们什么是逻辑来检查哪个复选框被选中,然后什么是逻辑来将value1或value2或两者等同于字符串吗?最后,我如何将它发送到对象,然后再发送到复杂对象?看看这个。这是一个非常简单的实现。如果我错过了什么,请告诉我。这不符合我的目的。也许我已经对代码进行了更多的编辑,以显示我已经实现了什么以及现在的问题是什么。嗨,Chandradepta,这实际上非常接近我正在尝试实现的。唯一的问题是,array2现在有两个对象在里面``array2[{“abc”:“前三个字母是abc”},{“xyz”:“后三个字母是xyz”}];```有没有一种方法可以直接将其存储为字符串?就像在``array2[“前三个字母是ABC”,“后三个字母是XYZ”]``中一样,如果我有多个复选框,例如UI中的3个复选框。如何修改handleChange事件?handle事件条件有3个复选框失败,对吗?那么有没有关于如何处理这个问题的建议呢?看看这个,这是完美的。非常感谢。如果没有太多的麻烦,你能提供一个关于你是如何做到这一点的小说明吗?先谢谢你。祝您度过愉快的一天提供您希望在数组中设置的值作为输入值。每当触发更改事件时,都会将该事件作为参数传递给handleChange(),从该事件中,可以访问元素的值和名称,以便区分选中了哪个元素。然后根据这一点,如果选中了状态,则将所需值添加到数组中,否则从数组中删除值
abc: boolean;
xyz: boolean;
ngOnInit(){
this.abc = false;
this.xyz = false;
}
isSelected1(event){
if (abc = true) {
   this.array2.abc = 'First three alphabets are ABC';
}else {
   this.array2.abc = '';
}
}
isSelected2(event){
if (xyz = true) {
   this.array2.xyz = 'Last three alphabets are XYZ';
}else {
   this.array2.xyz = '';
}
}