繁体   English   中英

如何使用JavaScript在对象中存储数据数组

[英]How to store arrays of data in object using JavaScript

如何在对象中存储数据数组。 我试图使用存储数据

 var namelist = [], labelDetails   = {};
 addedLabels_list.push(name);
 labedDetails_list[ownerName] = Address;

名称列表保留唯一的名称,而labelDetails将数据存储在键值对中

Namelist :
0:"ahmad"
1:"jhon"
2: "hamza"
3: "emma"

labelDetails :
ahmad :"lahore"
jhon :"USA"
hamza :"UK"
emma :"USA, Calforina"

但是,当同一所有者名称具有多个地址时 ,它将不起作用。 假设Emma住在USA, California ,她的第二个地址是Washington Dc

并替换了emma :"washington dc"

 var namelist = [], labelDetails   = {};
 addedLabels_list.push(name);
 labedDetails_list[ownerName] = Address;

对于数组,密钥应该是唯一的,因此在这种情况下,您可以使用数组为同一密钥存储多个地址,这是一个开始:

 function myFunction(){ var namelist = ["ahmad", "jhon", "hamza", "emma"], labelDetails = {ahmad :["lahore"], jhon :["USA"], hamza :["UK"], emma :["USA, Calforina"]}; labelDetails["emma"].push("washington dc"); console.log(labelDetails); } 
 <button onclick="javascript:myFunction()">Click me</button> 

我建议您一定要进行一些更改才能使解决方案正常工作,

labelDetails   = {
    "ahmad" : ["lahore"],
    "jhon" : ["USA"],
    "hamza" : ["UK"],
    "emma" : ["USA, Calforina"]
 };

labelDetails[ownerName].push("washington dc");

我将尝试设计一个数据结构,该结构也将随着时间的推移保持稳定,因此选择一个基于名称(基于更好ID)的键值人员注册表,每个人都引用一个数据项。 然后,该数据节点是所有将要出现的与人相关的数据的根,因此也必须加以注意...

 var personRegistry = { ahmad: { addressList: ["Lahore"] }, jhon: { addressList: ["USA"] }, hamza: { addressList: ["UK"] }, emma: { addressList: ["USA, California"] } } function storeAddress(name, address) { var store = personRegistry[name]; if (!store) { store = personRegistry[name] = {}; store.addressList = []; } // prevent address duplicates ... //if (!store.addressList.includes(address)) { // use that if available. if (store.addressList.indexOf(address) < 0) { store.addressList.push(address); } } console.log('personRegistry : ', personRegistry); storeAddress("emma", 'USA, California'); storeAddress("emma", 'USA, Washington DC'); storeAddress("emma", 'USA, Washington DC'); storeAddress("susan", 'Canada, Toronto'); storeAddress("susan", 'Canada, Toronto'); console.log('personRegistry : ', personRegistry); 
 .as-console-wrapper { max-height: 100%!important; top: 0; } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM