用非数字做数组下标时,.length和.forEach的结果好像不大对?

phommy 2012-08-31 03:29:23


var arrOutput = new Array();
arrInput.forEach(function (input) {
if (arrOutput[input] == undefined) {
arrOutput [input] = 1;
}
});

//arrOutput.length是0,用forEach遍历arrOutput也得不到值,但直接用key去取又能取的到值是1,奇怪了啊


这种数组里,我怎么才能获取到元素个数呢?还有怎么获取到所有key值呢...
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oggmm 2012-08-31
  • 打赏
  • 举报
回复
arrOutput[0]里面的数字是数组下标
arrOutput["sdfds"]这个相当于给arrOutput定义了一个叫sdfds的属性对象
phommy 2012-08-31
  • 打赏
  • 举报
回复
果然。。。用
for(var p in arrOutput)
就行,用
arrOutput.forEach
就只能找到数值下标的,真奇怪
oggmm 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

这种键值对建议直接用对象,不用数组。
JScript code

var a=new Array();
a['a']=1;
a['b']=2;
for(var p in a)if(a.hasOwnProperty(p))alert(a[p])
[/Quote]
就按楼上这种方式循环统计就ok
likeajin 2012-08-31
  • 打赏
  • 举报
回复
这种键值对建议直接用对象,不用数组。

var a=new Array();
a['a']=1;
a['b']=2;
for(var p in a)if(a.hasOwnProperty(p))alert(a[p])

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧