什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
What's the most appropriate data structure for this? (Are there disadvantages or caveats to having an Array with gaps in it?)
我基本上需要一个从某些数字到其他值的字典。我将从开始
var o = /*??????*/
然后:
o[4] = foo;
o[8] = bar;
您会注意到,索引远不是按顺序排列的,尽管作为键,它们肯定是重要的。
使用数组的缺点是什么,还是应该只在对象上使用数字键?
坚持使用"普通"对象。数组意味着顺序迭代,这会给人们带来错误的想法——你不想移动、拼接或推送这个对象,它本质上是一个散列。
如果附带的数字键不代表有序序列,那么当其他人(更不用说你自己)接近代码时,你只是给了他们错误的想法。
Javascript对象是稀疏的,数组只是具有自动维护长度属性(实际上是比最大索引大一个,而不是定义的元素数量)和一些其他方法的专用对象。无论哪种方式,你都是安全的;如果需要数组的额外功能,请使用它,否则请使用对象。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用类从一个标记中双击事件
- Javascript,访问一个主要对象模块模式中的每个对象
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 电话间隙3包含一个报警框;OK”;浏览器崩溃
- 我需要一个条形码扫描仪,包括在我的电话间隙项目
- 我需要在这个JQuery动画中关闭一个间隙
- 在JavaScript中管理像ArrayList这样的数组:删除一个元素并关闭创建的间隙