Javascript 在数组中追加为数组
我有一个像这样的对象,我可以使用下面的方法推送数据。我还初始化Javascript 在数组中追加为数组,javascript,arrays,multidimensional-array,vue.js,vuejs2,Javascript,Arrays,Multidimensional Array,Vue.js,Vuejs2,我有一个像这样的对象,我可以使用下面的方法推送数据。我还初始化类型数据 myObj = { 1: ["a", "b", "c"], 2: ["c", "d", "e"], } 它很好用 但是,现在我希望我的对象如下所示: myObj = { 1: { "a": [ [],[] ], "b": [ [],[] ], } } 如何修改我的app
类型
数据
myObj = {
1: ["a", "b", "c"],
2: ["c", "d", "e"],
}
它很好用
但是,现在我希望我的对象如下所示:
myObj = {
1: {
"a": [
[],[]
],
"b": [
[],[]
],
}
}
如何修改我的append函数来像这样追加元素?我只是根据@senty试图做的假设来回答这个问题: pushValue是一种方法,它将数字作为键,字符作为值,并将它们保存到this.types中,每当调用
pushValue
时,this.types
将有一个属性key
存储一个对象,该对象的键为value
,它存储包含空数组的数组。如果该数组(包含数组的数组)已经存在,则将向该数组追加另一个空数组。最后,this.types
将看起来像myObj
因此,pushValue
应该如下所示:
myObj = {
1: {
"a": [
[],[]
],
"b": [
[],[]
],
}
}
const-app=新的Vue({
el:“#应用程序”,
数据:{
类型:{}
},
方法:{
pushValue(键、值){
if(this.types.hasOwnProperty(键)){
if(this.types[key].hasOwnProperty(value)){
const orgValue=this.types[key][value];
orgValue.push([]);
this.$set(this.types[key]、value、orgValue);
}否则{
this.$set(this.types[key],value,[[]]);
}
}否则{
this.$set(this.types,key{
[值]:[[]]
});
}
}
}
});代码>
pushValue(键、值)
(1,‘a’)
(1,‘b’)
(1,‘c’)
(2,‘a’)
(2,‘b’)
(2,‘c’)
{{types}}
我只是根据我对@senty试图做什么的假设来回答这个问题:
pushValue是一种方法,它将数字作为键,字符作为值,并将它们保存到this.types
中,每当调用pushValue
时,this.types
将有一个属性key
存储一个对象,该对象的键为value
,它存储包含空数组的数组。如果该数组(包含数组的数组)已经存在,则将向该数组追加另一个空数组。最后,this.types
将看起来像myObj
因此,pushValue
应该如下所示:
myObj = {
1: {
"a": [
[],[]
],
"b": [
[],[]
],
}
}
const-app=新的Vue({
el:“#应用程序”,
数据:{
类型:{}
},
方法:{
pushValue(键、值){
if(this.types.hasOwnProperty(键)){
if(this.types[key].hasOwnProperty(value)){
const orgValue=this.types[key][value];
orgValue.push([]);
this.$set(this.types[key]、value、orgValue);
}否则{
this.$set(this.types[key],value,[[]]);
}
}否则{
this.$set(this.types,key{
[值]:[[]]
});
}
}
}
});代码>
pushValue(键、值)
(1,‘a’)
(1,‘b’)
(1,‘c’)
(2,‘a’)
(2,‘b’)
(2,‘c’)
{{types}}
你能分享更多关于对象输出的信息吗??我不太明白什么是“a”=>[…]
,我也不太清楚您希望使用pushValue
在复选框中获取@change
上的键和值,在新输出中的具体位置@change
,按键1或2触发推送值,值a、b、c等。我将obj编辑为myObj,以避免将其与方法中的obj混淆。因此,您希望在“myObj.1.a
?”??在这个.types
和myObj
之间有关系吗?因为我看不到myObj
与pushValue
有任何关系。我只希望它在那里,即使是作为一个空数组。因此,我可以在v-for中使用它,并使用索引,我可以理解它的计数;要能够在中使用:子组件的名称
属性,那么您将在myObj.1.a
中插入什么?我的意思是,什么会被推到空数组中?数字1或2,或按键a、b、c、。。。?因为当您执行pushValues
时,您正在修改this.types
,而不是myObj
。即使在这一刻,我仍然不知道myObj的意义是什么。或者您只想将一个包含两个空数组的数组附加到myObj.1.a
?您可以分享更多关于对象输出的信息吗??我不太明白什么是“a”=>[…]
,我也不太清楚您希望使用pushValue
在复选框中获取@change
上的键和值,在新输出中的具体位置@change
,按键1或2触发推送值,值a、b、c等。我将obj编辑为myObj,以避免将其与方法中的obj混淆。因此,您希望在“myObj.1.a
?”??在这个.types
和myObj
之间有关系吗?因为我看不到myObj
与pushValue
有任何关系。我只希望它在那里,即使是作为一个空数组。因此,我可以在v-for中使用它,并使用索引,我可以理解它的计数;要能够在中使用:子组件的名称
属性,那么您将在myObj.1.a
中插入什么?我的意思是,什么会被推到空数组中?数字1或2,或按键a、b、c、。。。?因为当您执行pushValues
时,您正在修改this.types
,而不是myObj
。即使在这一刻,我仍然不知道myObj的意义是什么。或者您只想将一个包含两个空数组的数组附加到myObj.1.a
??@senty请让我知道您是否非常想这样做!它真的很好,除了一件事。对于Vue中的else部分,如果不使用$set
,它会更改值(我可以在deb中看到)