2016-02-09 3 views
4

Допустим, у вас есть простой массив какПеребор массива с заданными интервалами

var someArray = ["1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9"]; 

Перебор массива, как этот

for (var i = 0; i < someArray.length; i++) { 
     console.log(someArray[i]); 
    }; 

дает это в консоли ......

1,2,3,4,5,6,7,8,9 

.... но есть ли способ итерации через массив, чтобы выбрать только n-ые элементы? Например, 3-е значения будут давать в консоли

1, 4, 7, ........ 

ответ

8

Несомненно.

Ваш итератор фактически состоит из 3-х частей. Декларация, условие и приращение.

Приращение - это третий параметр, и, скорее всего, вы всегда видели его как i ++, но это может быть что угодно. В вашем примере, вы хотите увеличить I на 3, поэтому я + = 3.

for (var i = 0; i < someArray.length; i += 3) { 
    console.log(someArray[i]); 
}; 
+0

Awesome thanks @Scottie. Да, я всегда видел инкрементную часть итератора как i ++. Я догадался, что это будет так просто, но никогда не знало, что это может быть что угодно – user1563944

1

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

var someArray = ["1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9"]; 

for (var i = 0; i < someArray.length; i++) { 
    if(i % 3 === 0){ 
     console.log(someArray[i]); 
    } 
} 

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

+0

Спасибо @vullnetyy отлично работает! Что же означает условие if? Если i = 0, но приращение на 3? – user1563944

+1

Он делит i на 3 и проверяет, является ли он кратным 3. Например, 6% 3 равно 0, потому что в целых делениях 3 * 2 + 0 = 6, но 7 равно 3 * 2 + 1 = 0, так что 7% 3 фактически равна 1. – DMH

+0

@DMH технически оператор modulo выводит остаток деления двух чисел. Итак, если вы делаете 2% 3, тогда результат равен 2, потому что 0 * 3 + 2 = 2. Здесь +2 - остаток, который заканчивается результатом операции. – vullnetyy

Смежные вопросы