问答详情
源自:10-1 编程挑战

arr[i].index=i;

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

提问者:ゞ苏戏 〃 2016-10-30 18:45

个回答

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

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

    如果还有不清楚可以回复

  • 爱拉舞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值了

  • 慕容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

    快给我分