没有合适的资源?快使用搜索试试~ 我知道了~
zhenn#hexo-blog#object数据存储的无序性1
需积分: 0 0 下载量 193 浏览量
2022-07-25
14:34:44
上传
评论
收藏 6KB MD 举报
温馨提示
试读
categories: 技术object作为javascript的一种数据存储格式,采用哈希表的存取方式,即一个key对应唯一的值,这样的特性,有时候给开发带来
资源推荐
资源详情
资源评论
title: "object数据存储的无序性"
date: 2011-05-10 13:49:34
categories: 技术
tags: javascript
---
object作为javascript的一种数据存储格式,采用哈希表的存取方式,即一个key对应唯一的值,这样的特性,有时候给开发带来很大的便利,比如当我们需要获得一系列不能重复的数字时,可以做如下处理:
{% codeblock %}
var randomOne = function(){
var i = 0 , obj = {};
while(i < 6){
var num = Math.ceil(10 * Math.random());
if(obj[num]) continue;
obj[num] = num;
i ++;
}
return obj;
}
var o = randomOne();
for(var i in o){
alert(o[i]);
}
{% endcodeblock %}
产生的随机数,分别作为key和value存入对象obj中,这样新产生的随机数在存入对象之前,只需先点对点的查找此数在对象中是否有相应的键值对,就可以确保数字的唯一性,而这样往往是比在数组中检索数据要快的多。
这一切看上去很完美,既满足了需求,又提高了性能,而事实上,一朵看上去很美丽的花往往是有毒的,一不小心就可以致人于死地。同样的,使用object存储数据给我们带来便捷的同时,也有一定的风险,正如你看到的文章标题,object数据存储时没有顺序的,当业务的需求对数据的顺序有严格要求的时候,这恰恰就是致你于死地的那滴毒液。
为了给上述的观点提供足够的佐证,请分别在webkit浏览器和非webkit浏览器中执行randomOne,横向对比两者的运算结果,就会发现在webkit中,遍历对象,输出数据的顺序是从小到大,而在非webkit中,则是按照存贮的先后顺序逐个输出。在这一点上,webkit事实上是把带有可转�
点击阅读更多
资源评论
深层动力
- 粉丝: 19
- 资源: 318
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功