Ответ 1
В jQuery или JavaScript, как мне пройти через каждую выделенную переменную?
Вам просто нужно перебирать результирующий Array
.
JQuery
$.each
loop
Этот метод прост в использовании и преимущества в используемых инкапсулируемых переменных.
$.each(separated, function(index, chunk) {
// `chunk` is each member of the array.
});
Конечно, jQuery - это JavaScript, поэтому любой из нижеперечисленных методов также будет работать.
JavaScript
for
loop
Это рекомендуемый способ.
for (var i = 0, length = separated.length; i < length; i++) {
var chunk = separated[i];
// `chunk` is each member of the array.
}
Вы также заметите, что свойство length
кэшируется, поэтому на каждой итерации он не просматривается. Некоторые браузеры уже оптимизированы для этого, однако IE по-прежнему пользуется преимуществами кэширования. Это займет всего 5 секунд, поэтому вы можете также поддерживать пользователей IE.
Вы можете определить i
и chunk
вне цикла for
, потому что JavaScript не имеет области блока (если вы не используете let
), и эти переменные будут существовать до (объявление поднято) и после (без масштаба блока).
for ( in )
loop
Этот цикл обычно не рекомендуется, так как он должен использоваться только для итерации поверх свойств объекта, а не для массивов, таких как свойства элемента.
for (var chunk in separated) {
if ( ! separated.hasOwnProperty(chunk)) {
continue;
}
// `separated[chunk]` is each member of the array.
}
Этот цикл будет перебирать все свойства цепи прототипа, поэтому hasOwnProperty()
должен использоваться. По этой причине он не рекомендуется для массивов.
for ( of )
loop
Этот цикл стандартизован в ECMA 6 и способен циклически перебирать NodeList
и итераторы.
for (var chunk of separated) {
// `chunk` is each member of the array.
}
forEach()
метод
Этот метод является дополнением к стандарту ECMA-262. Он недоступен в IE8, но может быть shimmed относительно легко.
separated.forEach(function(chunk, index) {
// `chunk` is each member of the array.
});
Другие специализированные методы
Если вы ищете итерацию для определенной цели, может оказаться полезным использовать специализированный итератор. Имейте в виду, что они также не имеют лучшей поддержки браузера.
filter
метод
Создает mew-массив элементов, для которых связанный обратный вызов был правным.
separated.filter(function(element) {
return +element > 255;
});
reduce
метод
Создает новое значение, основанное на уменьшении элементов массива слева направо.
separated.reduce(function(accumulator, element) {
return accumulator.concat(element);
}, "");
См. также метод reduceRight
.
map
метод
Создает новый массив, заменяя каждый элемент возвращаемым значением связанного обратного вызова.
separated.map(function(element) {
return element.substr(0, 1);
});
every
метод
Возвращает логическое значение, которое является результатом каждого элемента массива, передающего тест. Этот метод коротких замыканий, то есть он возвращается всякий раз, когда обратный вызов одного элемента не возвращает правду.
separated.every(function(element) {
return element.substr(0, 1) == "a";
});
some
метод
Возвращает логическое значение, которое является результатом некоторого элемента массива, передающего тест. Этот метод коротких замыканий, то есть он возвращается всякий раз, когда обратный вызов одного элемента проходит тест.
separated.some(function(element) {
return element.substr(0, 1) == "a";
});