配列内の奇数の検索

7923 ワード


配列の中で奇数を探して、奇数の中の小数と奇数の和を求めます


返す答えにsumとminのデフォルト値を指定します.
最高価格は前の問題と同じ数字です.MAX SAFE INTEGER利用
演算子%は残りの値を返します.2で割った残りの値が1の場合は奇数、0の場合は偶数です.したがって、条件文を使用して奇数を検索し、空の配列にプッシュできます.
新しい配列に和と和と和を求める論理を循環的に追加することを実現する.
let oddnumber = [12, 77, 38, 41, 53, 92, 85];

function odd1(oddnumber) {
  let answer = { sum: 0, min: Number.MAX_SAFE_INTEGER };
  let newArr = [];
  for (let i of oddnumber) {
    if (i % 2 === 1) {
      newArr.push(i);
    }
  }
  for (let a = 0; a < newArr.length; a++) {
    answer.sum += newArr[a];
  }

  for (let j = 0; j < newArr.length; j++) {
    if (newArr[j] < answer.min) answer.min = newArr[j];
  }

  return answer;
}

console.log(odd1(oddnumber));
以下は講師の解題方法です.
上で編んだコードよりずっと簡潔です.
function odd2(oddarr) {
   let answer = [];
   let sum = 0,
     min = Number.MAX_SAFE_INTEGER;
   for (let x of oddarr) {
     if (x % 2 === 1) {
       sum += x;
       if (x < min) min = x;
     }
   }
   answer.push(sum);
   answer.push(min);
   return answer;
}

console.log(odd2(oddnumber));