Heim >Backend-Entwicklung >PHP-Tutorial >js中Array对象疑问

js中Array对象疑问

WBOY
WBOYOriginal
2016-06-23 13:56:371138Durchsuche

DOM中有一组这样的input节点,假设现在只有一个:

<input class="js_count" pid="3" value="1" />


我想获取所有pid和value,组织一个数组或对象传给其他函数
var count = new Array();$('.js_count').each(function(){    var input = $(this);    var pid = input.attr('pid');    var val = input.attr('value');    count[pid] = val;});data = {    count : count};


但是我alert(count)得到的是:,,,1,是在一次count[pid] = val;的瞬间造成的,pid=3,但是从count[0]到count[2]都产生了一个undefined,我把new Array()换成了new Object()就没事了
请问这个是Array对象的特性吗?


回复讨论(解决方案)

是的,是Array对象的特性
会补齐未定义的下标

是的,是Array对象的特性
会补齐未定义的下标



谢谢斑竹
刚查了一些资料,PHP的所有变量,包括N维数组和对象属性,好像全都映射到同一个变量哈希表中,所以php数组可以用字符串索引,用数字索引也不要求连续,不会占用多余内存;而js的Array()好像就是c语言中最基本的数组实现的,不能字符串索引,用到多少数字索引就必须申请多少连续的内存,所以出现一堆undefined。但是有人说js一切皆对象,为什么Array()会这样...搞不明白

php 的数组并不是真正意义的数组,只是用了 array 这个名字
js 的数组是真正的数组,而且是一维的

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php 启用session 后插入文件路径错误Nächster Artikel:php和sql问题