【发布时间】:2018-10-08 13:10:11
【问题描述】:
我有以下将信息插入数组的代码。对于这个例子,我只插入索引。查看 Chrome 控制台时,我可以看到数组的长度是正确的(11) [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]。但是,当我扩展数组时,有重复的信息,它说长度是 34?我看到以下内容:
(11) [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
0: 6
1: 7
2: 8
3: 9
4: 10
5: 11
6: 12
7: 13
8: 14
9: 15
10: 16
11: 6 // seems to repeat itself?
12: 7
13: 8
14: 9
15: 10
16: 11
17: 12
18: 13
19: 14
20: 15
21: 16
22: 6
23: 7
24: 8
25: 9
26: 10
27: 11
28: 12
29: 13
30: 14
31: 15
32: 16
33: 17 // where is this 17 coming from?
length: 34
有谁知道为什么我在展开时看到 34 为长度?
代码:
var html = $($(xml).find("filters").html()).find("li");
var inputs = $(html).find("input");
var types = [];
inputs.each(function(index) {
if ($(this).prop("id").indexOf("filter-types") >= 0)
{
types.push(index);
}
});
console.log(types);
【问题讨论】:
-
inputs是哪里或什么,您显示的数组是types吗?在if语句上方添加debugger;并在浏览器控制台中单步执行代码。 -
也许一个工作的 jsfiddle 会有所帮助。类型的初始值是多少?
-
Inputs 是输入元素的 html:prntscr.com/jaww0m
-
Note 对象在展开时会更新,日志的第一行除外。因此,您使用的任何代码很可能是在您记录后操作数组,但在您扩展数组之前
-
@Michael 是的,这是您提供的代码和您拥有的代码之间相当重要的区别。
标签: javascript jquery arrays javascript-objects