arr[i].index=i;

来源:10-1 编程挑战

ゞ苏戏 〃

2016-10-30 18:45

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

写回答 关注

5回答

  • stone310
    2016-10-30 20:24:43
    已采纳

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

    如果还有不清楚可以回复

    ゞ苏戏 〃

    undefined类型是用typeof()判断得来的。 我想知道,他自定义这个index属性是用来干嘛,能不能在跟我说一下?

    2016-10-30 21:07:39

    共 2 条回复 >

  • 爱拉舞imooc
    2016-11-28 19:28:29

    到底谁说的对?

  • stone310
    2016-10-30 21:15:31

    回复字数限制了。。。

    定义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值了

    乄故里

    请问,你说的不保存i值就会先加载for循环,难道是指for里面的内容不执行?那是过程是怎么个循环,能再详细点吗。。智商上限-=-

    2017-01-05 11:58:13

    共 2 条回复 >

  • 慕容7796276
    2016-10-30 18:52:18

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

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

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

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

  • 慕容7796276
    2016-10-30 18:47:18

    快给我分

    ゞ苏戏 〃

    小菜鸡

    2016-10-30 18:48:34

    共 1 条回复 >

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题