JavaScript的收集和效率

尽管此集合的键只能是String类型足球外围 ,这与Java中的各种集合类可以使用各种对象作为键不同,Java中的各种集合类都可以,对于一般的客户端JS函数来说就足够了。同样,由于所有JS内部对象都继承自Object对象,因此亚博99 ,实际上,JS的Array对象也可以使用字符串作为数组的下标,就像PHP中的array变量一样。从鸟市轩。

Array是JavaScript提供的内部对象。这是一个标准集合。我们可以添加(推送)和删除(移动)其中的元素。我们还可以遍历for循环中的元素。然后,除了数组之外,我们还使用JavaScript。是否可以包含其他集合?

由于JavaScript的语言特性,我们可以动态添加和删除常见对象的属性。因此Object也可以看作是JS的特殊集合。让我们比较一下Array和Object的特征:

数组:

新功能:var ary = new Array();或var ary = [];

添加:ary.push(value);

删除:删除ary [n];

Traversal:for(var i = 0; i

对象:

新功能:var obj = new Object();或var obj = {};

添加:obj [key] = value; (键是字符串)

删除:删除obj [key];

遍历:用于(obj中的变量键)obj [key];

从上面的比较中可以看出,Object可以用作集合。在使用“弹出窗口”创建无限级别的网页菜单时,[3)我介绍了由Eric实现的__MenuCache__,它也是一个模拟Collection对象。

如果要检索数组中的指定值js中有集合么,则需要遍历整个数组:

复制代码,代码如下:

var关键字=;

对于(var i = 0; i

{

if(ary [i] ==关键字)

{

//待办事项

}

}

当我们在Object中检索具有指定键的条目时,只需使用:

var key ='';

var value = obj [key];

//待办事项

对象的此功能可用于有效地检索唯一字符串集合。遍历数组的时间复杂度为O(n),而遍历对象的时间复杂度为O(1)。虽然对于10,000个集合,for检索成本仅为数十ms,但是如果它是1000 * 1000检索或更多,在此之前js中有集合么,我做了一个映射,将100个唯一字符映射到1000个字符串数组幸运快3 ,耗时25-30s!之后,for遍历更改为模拟集的成员引用按对象凤凰体育 ,相同数量的数据映射只用了1.7-2s!

集合的遍历效率(从高到低):var value = obj [key];> for(;;)> for(in)。效率最低的是(in)。如果集合太大,请不要使用(in)遍历。

老王
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83586660、0755-83583158 传真:0755-81780330
邮箱:info@qbt8.com
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83174789 传真:0755-83170936
邮箱:info@qbt8.com
地址:天河区棠安路288号天盈建博汇创意园2楼2082
电话:020-82071951、020-82070761 传真:020-82071976
邮箱:info@qbt8.com
地址:重庆南岸区上海城嘉德中心二号1001
电话:023-62625616、023-62625617 传真:023-62625618
邮箱:info@qbt8.com
地址:贵阳市金阳新区国家高新技术开发区国家数字内容产业园5楼A区508
电话:0851-84114330、0851-84114080 传真:0851-84113779
邮箱:info@qbt8.com