1.第一种数据结构:
activities = [
{
name: "first activity",
sign_ups: [],
bids: []
},
{
name: "first activity",
sign_ups: [
{
name: "仝键",
phone: "13600000000"
},
{
name: "于硕",
phone: "15600000000"
}
],
bids: [
{
name: "竞价1",
biddings: [
{
name: "仝键",
phone: "13600000000",
price: "12"
},
{
name: "于硕",
phone: "15600000000",
price: "10"
}
]
}
]
}
];
这种数据结构所有的信息都存储在一个数组里,而每个活动又存储了name,sign_ups,bids,sign_ups和bids又分别存储活动报名和竞价信息.结构非常清晰,要取某一数据也很好取.但要存储或修改数据时由于嵌套比较多,所以步骤比较麻烦.以存储竞价信息为例:
Bidding.prototype.save_bidding = function () {
var bidding = this;
var activities = Activity.get_activities();
_.map(activities, function (activity) {
if (activity.name == Activity.get_active_activity_name()) {
_.map(activity.bids, function (bid) {
if (bid.name == Bid.get_current_bid()) {
bid.biddings.push(bidding)
}
})
}
})
localStorage.setItem("activities", JSON.stringify(activities));
}
2.第二种数据结构:
activities = {
"0": {
name: "first activity",
sign_ups: [],
bids: [],
biddings: {}
},
"1": {
name: "second activity",
sign_ups: [
{
name: "仝键",
phone: "13600000000"
},
{
name: "于硕",
phone: "15600000000"
}
],
bids: ["竞价1", "竞价2"],
biddings: {
"竞价1": [
{
phone: "13600000000",
price: "12"
},
{
phone: "15600000000",
price: "10"
}
],
"竞价2": [
{
phone: "13600000000",
price: "10"
},
{
phone: "15600000000",
price: "12"
},
]
}
]
};
这种数据结构所有的信息都存储在一个hash表里,每个活动都对应一个key,其value又包括name,sign_ups,bids,biddings,结构也比较清楚.相对于第一种结构,他把竞价名称抽成一个数组存储起来,用起来更加方便.修改数据时,找到相对应的key,修改它的key就行.以存储竞价信息为例:
Bidding.prototype.save_bidding = function () {
var bidding = this;
var bid = Activity.get_current_bid();
var activities = Activity.get_activities();
_.map(activities, function (value, key) {
if (key == Activity.get_current_activity()) {
value.biddings[bid].push(bidding);
}
})
localStorage.setItem("activities", JSON.stringify(activities));
}
3.第三种数据结构:
activities = [
{
id: "0",
name: "first activity"
},
{
id: "1",
name: "second activity"
}
];
sign_ups = [
{
name: "仝键",
phone: "13600000000",
activity_id: "0"
},
{
name: "于硕",
phone: "15600000000",
activity_id: "0"
}
]
bids = [
{
name: "竞价1",
activity_name: "0",
biddings: [
{
phone: "13600000000",
price: "9"
},
{
phone: "15600000000",
price: "10"
}
]
}
];
这种数据结构把活动名称(activities),报名信息(sign_ups),竞价信息(bids)分开存储,结构不太清晰.取数据时不太方便,但是嵌套较少,修改或存储数据时特别方便,以保存竞价信息为例:
Bid.create_new_bid = function (activity_id) {
var bids = Bid.get_bids();
var bid = new Bid(activity_id);
bids.push(bid);
localStorage.setItem("bids", JSON.stringify(bids));
}
总之,三种数据结构各有优劣,从第一种到第三种数据结构扩展性越来越好,存储数据比较方便;结构变的不太清晰,取数据不太方便.第一种是要一层一层的取,第三种是要筛选出满足特定条件的值(此处必须小心找出所有要满足的条件).
分享到:
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测技术。在本文中,我们将深入探讨CRC-16,特别是与CCITT标准相关的实现,以及它在Verilog硬件描述语言中的应用。 标题中的...
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
C++是一种强大的、面向对象的编程语言,特别适合处理复杂的算法和数据结构。 1. **C++语言基础**: C++提供了丰富的特性,包括类、模板、异常处理、命名空间等。在这个项目中,我们可能会看到类的使用来封装数据和...
"mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...
该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...
标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...
在电子工程领域,VHDL是一种广泛使用的硬件描述语言,用于设计可编程逻辑器件(如FPGA或ASIC)的行为和结构。 双向移位寄存器是一种能够进行左移和右移操作的存储单元。它在数据处理、信号处理和通信系统中有着广泛...
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
例如,`advertisement.cpp`可能涉及广告展示的优先级队列,`client.cpp`可能涉及到客户信息的散列表存储,`bidhistory.cpp`可能包含投标历史的链表或树结构,而`bid.cpp`可能涉及到投标出价的堆数据结构。...
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
在拍卖系统中,可能需要以下几种主要的数据结构: 1. **链表**:用于存储动态拍卖商品列表,因为新商品可能会随时添加或删除。 2. **队列**:可以用于处理用户的出价请求,确保按照时间顺序公平处理。 3. **栈**:...
去噪代码 matlab
在《数据结构课程设计总结报告》中,第一章详细阐述了需求分析。这一阶段的目标是理解系统规格说明,包括拍卖管理系统的功能和性能要求,如用户管理、拍卖物品分类、出价记录、时间管理等。同时,需求分析还需要与...
在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同设备和操作系统上的一致显示。它通常包含文字、图像、表格等元素,并且可以进行安全保护,防止未经授权的编辑或复制...
JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个上下文中,它可能包含了备份验证的相关信息,比如备份的完整性校验数据或者备份时的系统状态。 2. **config.json**:另一个...
### ECSHOP 数据结构、表结构与数据库设计详解 #### 概述 ECSHOP是一款基于PHP语言的开源网上商店系统,具有丰富的功能和良好的用户体验。本文将详细介绍ECSHOP v2.7.2版本中的数据结构、表结构以及数据库设计等...
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
数据结构课程设计报告的核心是构建一个网上拍卖系统,该系统具备用户管理、拍卖信息发布、浏览、竞拍等功能,以及提供搜索和排序优化拍卖流程。在报告中,主要涉及到了以下几个关键知识点: 1. **需求分析**: ...