`

party_bid三种数据结构

 
阅读更多
        写完party_bid三种数据结构有几天了,这是第一次接触测试代码,对测试驱动开发有了一点理解,今天来总结一下我对这三种数据结构优势劣势的认识:
1.第一种数据结构:
activities = [
    {
        name: "first activity",
        sign_ups:[],
        bids:[]
    },
    {
        name: "second activity",
        sign_ups: [
            {
                name:"仝键",
                phone:"13600000000"
            }
        ],
        bids:[
            {
                name:"竞价1",
                biddings : [
                    {
                        name: "仝键",
                        phone:"13600000000",
                        price: "12"
                    }
                ]
            }
        ]
    }
]

         这种数据结构比较清晰,整个数据结构最外层只有一个对象数组,每个对象中包含三个属性分别是每个活动的活动名称,活动的报名信息及竞价信息,其中竞价信息的数组中又嵌套了对象,每个对象由竞价名和竞价名对应的竞价信息组成,所以这部分比较复杂;虽然这种数据结构整体比较清晰但是存取起来很复杂。
         这种数据结构要想存储竞价信息,可以通过一下代码实现:
bid.create_new_bid = function (activity_name) {
    var activities = JSON.parse(localStorage.getItem("activities")) || [];
    var bid = _.map(activities, function (list) {
        if (list.name == activity_name) {
            var counter = list.bids.length + 1;
            var name = "竞价" + counter;
            list.bids.push({"name": name, "biddings": []});
        }
        return list;
    })
    localStorage.setItem("activities", JSON.stringify(bid))
}

2.第二种数据结构:
activities = {
    "0":{
        name: "first activity",
        sign_ups:[],
        bids:[],
        biddings:{}
    },
    "1": {
        name: "second activity",
        sign_ups: [
            {
                name:"仝键",
                phone:"13600000000"
            }
        ],
        bids:["竞价1","竞价2"],
        biddings:{
            "竞价1":[
                {
                    phone:"13600000000",
                    price: "12"
                }
            ],
            "竞价2": [
                {
                    phone:"13600000000",
                    price: "10"
                }
            ]
        }
    }
}

         这种数据结构也比较清晰,但是与第一种数据结构有所不同的是整个存储结构最外层是一个大对象,这个对象里存储着每个活动的id号,每个id下存储着活动名称,报名信息,竞价名称及竞价信息四个属性,与第一种数据结构相比多出了一个用来存储竞价名称的数组,这样就更容易提取出竞价页面需要显示的数据,避免了复杂的存取过程,相比之下存取更简单。
         这种数据结构要想存储竞价信息,可以通过一下代码实现,(相比第一种更为简单):
bidding.create_new_bid = function (activity_name) {
    var activities = JSON.parse(localStorage.activities);
    var counter = activities[activity_name].bids.length + 1;
    var name = "竞价" + counter;
    activities[activity_name].bids.push({"name": name})
    activities[activity_name].biddings[name] = [];
    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:"13600000000",
        activity_id:"1"
    }
]
bids = [
    {
        name: "竞价1",
        activity_id:"0",
        biddings:[
            {
                phone:"13600000000",
                price: "9"
            }
        ]
    }
]

         这种数据结构没有前两种清晰,包括了三个数组,扩展性优于前两种,并且代码上的实现更为简单。每个数组都存储着各自相关的信息,activities[]存储每个活动独有的id标记,sign_ups[]存储活动的报名信息并通过id标记来区分报名信息,bids[]存储竞价信息,并表明所属的活动以及所属的竞价。
分享到:
评论

相关推荐

    uid_score_bid.dat

    数据格式 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

    标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...

    crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9. bid_crc16 ccitt ver

    CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测技术。在本文中,我们将深入探讨CRC-16,特别是与CCITT标准相关的实现,以及它在Verilog硬件描述语言中的应用。 标题中的...

    东北大学 数据结构 代码全部

    C++是一种强大的、面向对象的编程语言,特别适合处理复杂的算法和数据结构。 1. **C++语言基础**: C++提供了丰富的特性,包括类、模板、异常处理、命名空间等。在这个项目中,我们可能会看到类的使用来封装数据和...

    EURUSD_1 Min_Bid_2003.05.04_2019.02.02.zip

    欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。

    基于JavaScript的Java_Bid招标项目前端设计源码

    该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...

    mc_bid

    "mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...

    Repaso_Clases_Objetos_call_aplly_bid_22_02_2021

    标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...

    ssd5 数据结构 exercise5

    例如,`advertisement.cpp`可能涉及广告展示的优先级队列,`client.cpp`可能涉及到客户信息的散列表存储,`bidhistory.cpp`可能包含投标历史的链表或树结构,而`bid.cpp`可能涉及到投标出价的堆数据结构。...

    数据结构课程设计网上拍卖系统

    在拍卖系统中,可能需要以下几种主要的数据结构: 1. **链表**:用于存储动态拍卖商品列表,因为新商品可能会随时添加或删除。 2. **队列**:可以用于处理用户的出价请求,确保按照时间顺序公平处理。 3. **栈**:...

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    去噪代码matlab-PGBL_BID:PGBL_BID的Matlab代码

    去噪代码 matlab

    bid_shift_reg.rar_plus

    标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...

    ECSHOP数据结构,表结构,数据库设计

    ### ECSHOP 数据结构、表结构与数据库设计详解 #### 概述 ECSHOP是一款基于PHP语言的开源网上商店系统,具有丰富的功能和良好的用户体验。本文将详细介绍ECSHOP v2.7.2版本中的数据结构、表结构以及数据库设计等...

    Bid Documents - Toyota Hilux Fx_pdf_

    在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同设备和操作系统上的一致显示。它通常包含文字、图像、表格等元素,并且可以进行安全保护,防止未经授权的编辑或复制...

    backup_1000821v1001400000.zip

    JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个上下文中,它可能包含了备份验证的相关信息,比如备份的完整性校验数据或者备份时的系统状态。 2. **config.json**:另一个...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    数据结构课程设计报告-拍卖管理系统.docx

    数据结构课程设计报告的核心是构建一个拍卖管理系统的软件,该系统涵盖了多个关键模块,旨在有效管理和操作拍卖过程中的各种元素。需求分析是整个软件开发流程的关键步骤,它连接了系统分析与软件设计,确保项目的...

Global site tag (gtag.js) - Google Analytics