js中Array对象疑问

WBOY
Release: 2016-06-23 13:56:37
Original
1102 people have browsed it

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

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


我想获取所有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};
Copy after login


但是我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 的数组是真正的数组,而且是一维的

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template