循环后数组的值丢失

时间:2017-03-15 08:59:04

标签: javascript casperjs

" end"的值循环丢失后,我不明白原因。



var horas = ['2','6']
var x6 = ['1','2','3','4','5','6','7']
var x5 = ['uno','dos','tres','cuatro','cinco','seis','siete']
var final = [];		
   for (var i = 0; i <= x6.length; i++) 
   {

    if(x6[i].indexOf(horas[0])!==-1) {final.push(x5[i]);}
    if(x6[i].indexOf(horas[1])!==-1) {final.push(x5[i]);}
    if(x6[i].indexOf(horas[2])!==-1) {final.push(x5[i]);}
	 console.log(final); // here yes exists
    }			

    console.log(final); // does not exists, Does not show anything
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您需要将索引保留在数组中。

for (var i = 0; i < x6.length; i++) {
//                 ^

var horas = ['2', '6']
var x6 = ['1', '2', '3', '4', '5', '6', '7']
var x5 = ['uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete']
var final = [];
for (var i = 0; i < x6.length; i++) {
    if (x6[i].indexOf(horas[0]) !== -1) { final.push(x5[i]); }
    if (x6[i].indexOf(horas[1]) !== -1) { final.push(x5[i]); }
    if (x6[i].indexOf(horas[2]) !== -1) { final.push(x5[i]); }
    console.log(final);
}

console.log(final);

带有切换Array#indexOf部分的更简洁版本。

var horas = ['2', '6'],
    x6 = ['1', '2', '3', '4', '5', '6', '7'],
    x5 = ['uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete'],
    final = [],
    i;

for (i = 0; i < x6.length; i++) {
    if (horas.indexOf(x6[i]) !== -1) {
        final.push(x5[i]);
    }
}

console.log(final);

答案 1 :(得分:1)

  

迭代循环时数组索引出现问题

for (var i = 0; i <= x6.length; i++)
  

应改为

for (var i = 0; i < x6.length; i++)