нужна помощь с условием во время цикла через массив - PullRequest
0 голосов
/ 03 марта 2011

У меня есть массив с примерно 20 элементами, и мне нужно сделать несколько операторов if во время циклического перемещения по этому массиву, и мне нужна помощь в создании этого оператора if в том смысле, что мне нужно иметь возможность искать, если строка содержит некоторый текст эффективным способом, который не повесит целое приложение.

var locations = [
                   ['Maryland', 'USA', 'Pentium IV', 120, '1 GB', '15"'],
                   ['New York', 'USA', 'Pentium IV', 40, '512 MB', '15" and 17"'],
              ['Frankfurt', 'Germany', 'Pentium IV', 100, '2 GB', '17"']
                ];

for (var i = 0; i < locations.length; i++) {
     var ram = locations[4];
     var monitor = locations[5];

     // need help with the if statement below
     if (ram < '1 GB' || monitor.startsWith("15")) {
       // do something
     }
}

Я использую чистый JavaScript, никакой JQuery или другие фреймворки.

Заранее большое спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 03 марта 2011

Здесь у вас двойные массивы, поэтому вам нужно locations[i], чтобы сослаться на правый ряд.Кстати, в Javascript нет функции startsWith.

Попробуйте: -

for (var i = 0; i < locations.length; i++) {
     var ram = locations[i][4];
     var monitor = locations[i][5];

     if ((ram.indexOf('MB') >= 0 && parseInt(ram) < 1024) || monitor.match("^15")) {
       // do something
     }
}
2 голосов
/ 03 марта 2011

Как насчет

if (ram.indexOf('GB') >= 0)

Это просто проверит, содержится ли слово «GB» в строке.Если это так, мы уверены, что это 1 ГБ, 2 ГБ и т. Д. Если это не так, мы, вероятно, говорим в МБ, поскольку терабайты ОЗУ еще не используются на машинах.

Конечно, это зависит от того, чтоВозможные варианты оперативной памяти.Они приходят из (конечного) списка, или пользователи могут вводить их самостоятельно?

1 голос
/ 03 марта 2011

Javascript является однопоточным, поэтому вместо использования веб-работников , что является довольно новой возможностью, позволяющей запускать его в фоновом режиме, вы должны просто делать то, что вы хотите в цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...