为了账号安全,请及时绑定邮箱和手机立即绑定

arr[i].index=i;

i赋值给arr[i].index为什么会是undefined类型,如果index是数组下标的话,那又赋值i岂不是多此一举

正在回答

5 回答

赋值得出undefined类型你是从哪看到的,console?console的话是系统默认的返回值,赋值语句本来就没有返回值,则默认为undefined,这里index并不是数组下标,而是自定义属性,名字可以改,例如:arr[i].aaa=i;

如果还有不清楚可以回复

1 回复 有任何疑惑可以回复我~
#1

ゞ苏戏 〃 提问者

非常感谢!
2016-10-30 回复 有任何疑惑可以回复我~
#2

ゞ苏戏 〃 提问者

undefined类型是用typeof()判断得来的。 我想知道,他自定义这个index属性是用来干嘛,能不能在跟我说一下?
2016-10-30 回复 有任何疑惑可以回复我~

到底谁说的对?

0 回复 有任何疑惑可以回复我~

回复字数限制了。。。

定义index这个属性并且将i值赋值给它,是为了将当前for循环时的i值保存到这个属性上,以便在for循环内部函数使用,例如:

for(var i=0;i<2;i++){

xxx.onclick=function(){}

},

这里for循环内部有个click事件,如果不去保存i值,那么在页面加载时显示会先加载for循环,然后加载时click事件并没有触发,因此加载好for循环后,i值已经为2,这时如果触发click事件,i值就是定值(为2),但如果提前在页面加载循环时将每一个i值保存在每一个arr的index属性上,那么在click事件内部,再去调用当前事件的index属性,就是在页面加载是保存下来对应的i值了

5 回复 有任何疑惑可以回复我~
#1

慕容7796276

还是不懂。。。。。
2016-10-30 回复 有任何疑惑可以回复我~
#2

乄故里

请问,你说的不保存i值就会先加载for循环,难道是指for里面的内容不执行?那是过程是怎么个循环,能再详细点吗。。智商上限-=-
2017-01-05 回复 有任何疑惑可以回复我~

别想的那么复杂 就是 给一个物品贴上带有 1 2 3的标签 方便你以后能准确无误的是用他

用在哪里 一般都用在当前循环里 

for(i=0;i<aLi.length;i++)
{
aLi[i].index=i; 

这一句表示的是 循环所有aLi 然后给每个aLi 加上序列值 。好了,快给我分

0 回复 有任何疑惑可以回复我~

快给我分

0 回复 有任何疑惑可以回复我~
#1

ゞ苏戏 〃 提问者

小菜鸡
2016-10-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

arr[i].index=i;

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信