Как разбить массив на шаги?
Подскажите пожалуйста как разбить массив на шаги?
В зависимости от значения step нужно разбить массив на шаги.
Если step = 3 , то как result превратить массив
из такого [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] в такой [0, 4, 8] ?
Значения в массиве могут быть любые, шаги в данном случае это их позиция!
let step = 3; // изменяемый
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // изменяемый и значения могут быть любые
let result = [];
for(let i = 0; i < arr.length; i++){
result.push(arr[i]);
}
console.log(result);
Ответы (3 шт):
Автор решения: Aziz Umarov
→ Ссылка
так посмотрите
let step = 3; // изменяемый
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // изменяемый и значения могут быть любые
let result = [];
for(let i = 0; i < arr.length; i++){
if (i%(step + 1) == 0) {
result.push(arr[i]);
}
}
console.log(result);
или из комментариев выше
let step = 3; // изменяемый
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // изменяемый и значения могут быть любые
let result = [];
for(let i = 0; i < arr.length; i++){
if (i%(step + 1) == 0) {
result.push(arr[i]);
} else {
result.push('');
}
}
console.log(result);
или из комментов ниже
let step = 3; // изменяемый
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // изменяемый и значения могут быть любые
let result = [];
for(let i = 1; i < arr.length; i++){
if ((i - 1)%(step + 1) == 0) {
result.push(arr[i]);
} else {
result.push('');
}
}
console.log(result);
Автор решения: Sire IMPACTUS
→ Ссылка
let step = 3; // изменяемый
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // изменяемый и значения могут быть любые
let result = [];
for(let i = 0; i < arr.length; i += step+1){
result.push(arr[i]);
}
console.log(result);
Автор решения: teran
→ Ссылка
Для фильтрации массивов имеется Array.filter
let skip = 3;
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let result = arr.filter((v,idx) => idx%(skip+1) == 0);
console.log(result);