一个坑,坑了半天时间

2017-04-05 15:05:44 +08:00
 imn1
firefox 写个 UC 脚本方便阅读车牌
for (i in list) {
for (j in nodes) { }
}

i 总是只跑一遍就结束,第二个值开始总是无效
然后研究了半天
改成
for (j=0; j<nodes.length; j++) 就跑通了
但是刚开始时改 i 不改 j 也不通,坑我忽略了要改内循环这点
3205 次点击
所在节点    JavaScript
14 条回复
noe132
2017-04-05 15:12:00 +08:00
不知所云
dianliang01
2017-04-05 15:39:47 +08:00
没明白
imn1
2017-04-05 15:56:54 +08:00
@noe132
@dianliang01
1.内、外循环都用 for...in ,跑不通
2.外循环 for.. 内循环 for...in ,也跑不通
3.外循环 for..in 内循环 for...,可以跑通

开始时按 2 改了,不通,就以为不是循环问题,去测试其他语句问题了,没想到几个小时后改成 3 ,就通了……
loy6491
2017-04-05 16:06:33 +08:00
for...in 本来就不出处理数组的,你自己乱写怪谁..
tieshu
2017-04-05 16:08:14 +08:00
for of
vghdjgh
2017-04-05 16:13:26 +08:00
处理数组用 for...of ,处理 object 用 for...in ,不要乱用,会坑死自己的。
imn1
2017-04-05 17:16:05 +08:00
@loy6491
@vghdjgh
非职业水平,脚本只写给自己用的,多多包容

之前都想过这个, list 是 json 的列表, nodes 是 getElements ,查错时用 typeof 看过两个都是 obj
sun522198558
2017-04-05 17:19:34 +08:00
可怕的头像
Eoss
2017-04-05 17:20:03 +08:00
@imn1 typeof [] 试试。不要太相信 typeof 。
shmilypeter
2017-04-05 23:12:08 +08:00
想要写点什么才发现 V2EX 连个富文本编辑器,连 syntax highlighter 都没有
Phariel
2017-04-06 01:37:33 +08:00
@imn1 #7 请使用 instanceof
Martox
2017-04-06 08:29:54 +08:00
@imn1 请用 Object.prototype.toString.call()方法来判断。
xman99
2017-04-06 09:13:22 +08:00
phper 路过, 楼上说的有点高级, 我们一般只用 each 和 普通 for
chuxiaonan
2017-04-06 12:42:51 +08:00
通过 DOM API 得到的一般是个 NodeList ,提供了一个 forEach 方法可以用来迭代
```javascript
document.querySelectorAll(...).forEach(callback)
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352659

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX