作者Panasonic (ideas for life)
看板Ajax
标题Re: [问题]javascript 阵列 JSON
时间Sat Aug 9 00:35:00 2014
※ 引述《leochen0818 (米拔)》之铭言:
: 假设在选举中,候选人A ~ D於选区1 ~ 5的得票数如下
: ┌────┬────┬────┬────┬────┬────┐
: │ │第1选区 │第2选区 │第3选区 │第4选区 │第5选区 │
: ├────┼────┼────┼────┼────┼────┤
: │候选人A │ 1521 │ 3002 │ 789 │ 2120 │ 1786 │
: ├────┼────┼────┼────┼────┼────┤
: │候选人B │ 522 │ 765 │ 1200 │ 2187 │ 955 │
: ├────┼────┼────┼────┼────┼────┤
: │候选人C │ 2514 │ 2956 │ 1555 │ 1036 │ 4012 │
: ├────┼────┼────┼────┼────┼────┤
: │候选人D │ 1226 │ 1985 │ 1239 │ 3550 │ 781 │
: └────┴────┴────┴────┴────┴────┘
: 试撰写一个javascript程式,
: 令它重复出现对话方块要求使用者输入每位候选人在各个选区的得票数,
: 输入完毕後再显示每位候选人的总得票数。
: ----
: 上述是一本书内的练习题,
: 在不考虑HTML跟呈现方式的话,大家会怎麽写?
: ----
: 我个人本来是想用多维阵列的方式,例如:
: var election = new Array("候选人A", "候选人B", "候选人C", "候选人D");
: 然後利用回圈自动产生其余的部分,例如:
: http://jsbin.com/devulo/5/edit
: 可是这样写不算真的二维阵列?
: 而且election[i]的部分无法正常显示,
: 因为阵列无法用字串当索引?
厘清一下观念先, 阵列也是一个object, 所以可以赋予属性
比如说 var a = [];
a["hello"] = "world";
并不是在阵列里面加入一个值这种概念,
而是在a这个物件里面加入属性hello并赋值world
这时候您打印a.length是0, 但您打印a.hasOwnProperty("hello")会是true.
: 所以好一点的写法是用JSON?例如:
: var election = {
: 候选人A: {....},
: 候选人B: {....},
: 侯选人C: {....},
: 侯选人D: {....}
: }
: 但这样我就不会写了...
: 恳请大家指导,万分感谢!!
这种写法叫做object literal, 物件实字.
您要迭代物件的属性使用for in loop就可以了.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.151.203
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Ajax/M.1407515703.A.54D.html
1F:推 leochen0818: 感谢您的耐心指导!!小子受用无穷:) 08/10 11:50