如何使用JavaScript在对象中存储数据数组
如何在对象中存储数据数组。我尝试使用如何使用JavaScript在对象中存储数据数组,javascript,arrays,Javascript,Arrays,如何在对象中存储数据数组。我尝试使用 var namelist = [], labelDetails = {}; addedLabels_list.push(name); labedDetails_list[ownerName] = Address; namelist保存唯一的名称,而labelDetails将数据存储在键值对中 Namelist : 0:"ahmad" 1:"jhon" 2: "hamza" 3: "emma" labelDetails : ahmad :"lah
var namelist = [], labelDetails = {};
addedLabels_list.push(name);
labedDetails_list[ownerName] = Address;
namelist保存唯一的名称,而labelDetails将数据存储在键值对中
Namelist :
0:"ahmad"
1:"jhon"
2: "hamza"
3: "emma"
labelDetails :
ahmad :"lahore"
jhon :"USA"
hamza :"UK"
emma :"USA, Calforina"
但是,当同一个所有者名称有多个地址时,将不起作用。
比如说,艾玛住在美国加利福尼亚州,她的第二个地址是华盛顿特区
它取代了艾玛:“华盛顿特区”
对于数组,键应该是唯一的,因此在这种情况下,可以使用数组为同一个键存储多个地址,这是一个开始:
函数myFunction(){
变量名称列表=[“ahmad”、“jhon”、“hamza”、“emma”],
labelDetails={ahmad:[“拉合尔”]、jhon:[“美国”]、hamza:[“英国”]、emma:[“美国,加州”]};
labelDetails[“emma”]。推送(“华盛顿特区”);
控制台日志(labelDetails);
}
单击我
对于数组,键应该是唯一的,因此在这种情况下,您可以使用数组为同一个键存储多个地址,这是一个开始:
函数myFunction(){
变量名称列表=[“ahmad”、“jhon”、“hamza”、“emma”],
labelDetails={ahmad:[“拉合尔”]、jhon:[“美国”]、hamza:[“英国”]、emma:[“美国,加州”]};
labelDetails[“emma”]。推送(“华盛顿特区”);
控制台日志(labelDetails);
}
单击我
我建议您一定要做一些更改才能使您的解决方案生效
labelDetails = {
"ahmad" : ["lahore"],
"jhon" : ["USA"],
"hamza" : ["UK"],
"emma" : ["USA, Calforina"]
};
labelDetails[ownerName].push("washington dc");
我建议你一定要做些改变,让你的解决方案发挥作用
labelDetails = {
"ahmad" : ["lahore"],
"jhon" : ["USA"],
"hamza" : ["UK"],
"emma" : ["USA, Calforina"]
};
labelDetails[ownerName].push("washington dc");
我会尝试设计一个随着时间的推移也保持稳定的数据结构,从而选择一个基于名称(更好地基于id)的键值person注册表,每个人引用一个数据项。然后,此数据节点是所有与人员相关的数据的根,这些数据还将出现,然后必须进行处理
var personRegistry={
艾哈迈德:{
地址列表:[“拉合尔”]
},
约翰:{
地址列表:[“美国”]
},
哈姆扎:{
地址列表:[“英国”]
},
艾玛:{
地址列表:[“美国,加利福尼亚”]
}
}
函数存储地址(名称、地址){
var store=personRegistry[name];
如果(!存储){
store=personRegistry[name]={};
store.addressList=[];
}
//防止地址重复。。。
//如果(!store.addressList.includes(address)){//如果可用,请使用它。
if(store.addressList.indexOf(address)<0){
store.addressList.push(地址);
}
}
log('personRegistry:',personRegistry);
店址(“艾玛”,“美国,加利福尼亚”);
店址(“emma”,美国华盛顿特区);
店址(“emma”,美国华盛顿特区);
店址(“苏珊”,“加拿大,多伦多”);
店址(“苏珊”,“加拿大,多伦多”);
log('personRegistry:',personRegistry);
.as console wrapper{max height:100%!important;top:0;}
我会尝试设计一个随时间保持稳定的数据结构,从而选择一个基于名称的(更好的基于id的)键值人员注册表,每个人都引用一个数据项。该数据节点是所有与人员相关的数据的根,这些数据将出现,然后也必须处理
var personRegistry={
艾哈迈德:{
地址列表:[“拉合尔”]
},
约翰:{
地址列表:[“美国”]
},
哈姆扎:{
地址列表:[“英国”]
},
艾玛:{
地址列表:[“美国,加利福尼亚”]
}
}
函数存储地址(名称、地址){
var store=personRegistry[name];
如果(!存储){
store=personRegistry[name]={};
store.addressList=[];
}
//防止地址重复。。。
//如果(!store.addressList.includes(address)){//如果可用,请使用它。
if(store.addressList.indexOf(address)<0){
store.addressList.push(地址);
}
}
log('personRegistry:',personRegistry);
店址(“艾玛”,“美国,加利福尼亚”);
店址(“emma”,美国华盛顿特区);
店址(“emma”,美国华盛顿特区);
店址(“苏珊”,“加拿大,多伦多”);
店址(“苏珊”,“加拿大,多伦多”);
log('personRegistry:',personRegistry);
。作为控制台包装器{max height:100%!important;top:0;}
嘿,你可以使用一些数组来存储同一个对象的多个地址,比如emma:[“USA,Calforina”,“washington,dc”]。你为什么不直接附加地址
?像这样:labedDetails\u list[ownerName]+=“-”+地址;
这很明显,不是吗?密钥应该是唯一的。我想检查相同的名称和地址不会重复@HamzaAbdaouiYes@AbhilashNayakHey,你可以使用一些数组来存储同一对象的多个地址,比如emma:[“美国,加州”,“华盛顿特区”].你为什么不加上地址
?像这样:labedDetails\u list[ownerName]+=“-”+地址;
这很明显,不是吗?关键应该是唯一的。我想检查一下相同的名称和地址不会重复@HamzaAbdaouiYes@abhilashnayakThank,问题是你如何学习最有效的方法来实现高度赞赏。谢谢,问题是你如何学习最有效的方法来实现高度赞赏。比ks@Harshakj89谢谢@Harshakj89