对于循环到for循环,未定义推入空数组的变量

时间:2015-08-18 18:06:33

标签: javascript arrays for-loop

我有for循环的问题... 我有一个字符串日期

的数组
var eru = [
[" 1 Gennaio-7 Gennaio 2014", 17],
[" 8 Gennaio-14 Gennaio 2014", 14],
[" 15 Gennaio-21 Gennaio 2014", 16],
[" 22 Gennaio-28 Gennaio 2014", 16],
[" 29 Gennaio-4 Febbraio 2014", 15],
[" 5 Febbraio-11 Febbraio 2014", 19]
]

我推进空数组年份,日期和月份的字符串,但是...... 在数组中我有一个月的名字,但我想要一个月的数字。当我用数字替换月份名称并在空数组中推送新变量时,我有一个for循环进入第一个for循环。但推动的变量是不确定的,我不明白原因......

这是jsfiddle

http://jsfiddle.net/hd5z9rhd/

var higheru = [];

var search = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
var replace = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];

var anno;
var mese;
var giorno;
for (var i = 0; i < eru.length; i++) {

    var parsa = eru[i];
    var primo = parsa[0] + "";
    var secondo = parsa[1];
    anno = primo.substr(-4);

    giorno = primo;
    var valoreday = giorno.search("-");
    var balle = giorno.substr(1, valoreday);
    var trova = balle.search(" ");
    giorno = balle.substr(0, trova);

    mese = balle.substr(trova, valoreday);
    mese = mese.replace("-", "");

    for (s = 0; s < search.length; s++) {
        var corrispondenza = search[s];

        if (mese == corrispondenza) {
            var newmese = mese.replace(search[s], replace[s]);

        }

    }

    higheru.push([anno, newmese, giorno, secondo]);
}

1 个答案:

答案 0 :(得分:2)

这里:

&#13;
&#13;
...
mese = balle.substr(trova, valoreday);
mese = mese.replace("-", "");
var newmese = '';

for (s = 0; s < search.length; s++) {
  var corrispondenza = search[s];

  if (mese.trim() == corrispondenza.trim()) { // <- Remove space with trim()
    newmese = mese.replace(search[s], replace[s]);
    break;
  }
}
&#13;
&#13;
&#13;