for  in怎么从数组的中间输出啊,求各位大神有空的给小白我讲解一下吧。var a["今天","明天","后天"];
var i=1;
for(i in a ){
document.write(a(i));
}希望输出的结果是:明天后天,但结果是把数组的全都输出了:今天明天后天
前面定义的i=1没起作用。怎样让他起作用呢

解决方案 »

  1.   

    for in 只能全部遍历对象的所有属性。
    你要从数组的中间输出还是应该用
    for (var i = 1; i < a.length; i++)
      

  2.   

    你上面写的i虽然定义了i=1,但是运行for....in的时候i会被重新赋值.
    非要用for...in吗?简单方法:里面加条件:var a["今天","明天","后天"];
    for(let i in a ){
    if(i>0){
    document.write(a(i));
    }
    }或者var a["今天","明天","后天"];
    for(let i in b=a.slice(1) ){
    document.write(b(i));
    }
      

  3.   

    里面的a(i)都换成[i],b(i)=>b[i],上面的仁兄说的对,最好用于对象,MDN上讲for...in不推荐用于Array,但不表示不能用,只是不能保证顺序,
      

  4.   


    console.log(a.slice(Math.floor((a.length-1)/2),a.length).join(","))