Ответы пользователя по тегу Алгоритмы
  • Как перебрать массив?

    @undefined_title
    //var initialData = [1, 9, 4, 95, -3, 51, 6, 9, 4, 4,-9, 88, 27];
    var initialData = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2];
    
    var wayFirst = function(data) { 
      var sum = 0;
      data.forEach( (value) => {sum = sum + value} )
      return sum;
    }
    
    var waySecond = function(data) {
      var sum = 0;
      data.forEach( (value, i) => {
        i % 2 === 0 ?  sum = sum + value : false
      })
      return sum;
    }
    
    var wayThird = function(data) {
      var sum = 0;
      var iTemp = 0
      data.forEach( (value, i) => { 
        if (!iTemp || iTemp + 4 === i)  { 
          sum = sum + value;
          iTemp === 0 ? iTemp = 1 : iTemp = i;
        } 
      })
      return sum;
    }
    
    console.log(wayFirst(initialData));
    console.log(waySecond(initialData))
    console.log(wayThird(initialData))


    сделал через forEach но через reduce было бы немного компактнее

    или если надо получать не значения а засумированные элементы с интервалом
    const initialData = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
    
    let sumArrayWithInterval = (data, interval) => { 
      const sumWithIntervel = []; 
      let next = 0;
      data.forEach((value, i) => {
        if (next === i) { 
          const valueIndex = interval === 1 ? 1 + i : interval + 1 + i;
          
          data[valueIndex] ? sumWithIntervel.push(value + data[valueIndex]) : false
          interval === 1 ? next = i + interval + 1 : next = valueIndex + 1
        }
      })
      return sumWithIntervel;
    }
    console.log(
          sumArrayWithInterval(initialData, 1)
    );
    
    console.log( 
        sumArrayWithInterval(
          sumArrayWithInterval(initialData, 1)
        , 2)
    );
    
    console.log( 
      sumArrayWithInterval(
        sumArrayWithInterval(
          sumArrayWithInterval(initialData, 1)
        , 2)
      , 4)
    );
    Ответ написан
    Комментировать