не могу заставить JS правильно оценить две одинаковые строки - PullRequest
0 голосов
/ 29 декабря 2010

Я вижу в журнале, что во время цикла есть несколько совпадений, но он возвращает только true (и добавляет файл в массив) на последней итерации. 'typeof' говорит мне, что они все строки и выглядят одинаково в консоли. не могу понять, что заставило бы JS не видеть их идентичными.

Могут ли пробелы или квадратные скобки вызывать проблемы?

var name = file.split('.');
for (l=0;l<d.length;l++)
{
  var n = d[l].split('.');
  var r = n[0].replace(/\[\d\]$/,''); //chop off last bracket in file name

  // tells me both variables are strings
  console.log('r is a: ' + (typeof r) + ' name is a: ' + (typeof name[0]));

  if(r && r == name[0])
  {
    count_array.push(r);
    console.log('>>>>>>>>>>>>>>>' + r + ' added to array');
  }
}

Thx!

1 Ответ

1 голос
/ 29 декабря 2010

Ваш вопрос далеко не ясен.Но удар в темноте, у вас есть эта строка:

var r = n[0].replace(/\[\d\]$/,''); //chop off last bracket in file name

Это удалит парный набор скобок с одной цифрой между ними, например, foo[1] => foo.Он не удалит парный набор скобок с двумя или более цифрами между ними, как, скажем, foo[10] => foo.Для этого вам нужно:

var r = n[0].replace(/\[\d+\]$/,''); //chop off last bracket in file name
//                        ^--- Added the +
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...