sumPositive.js (8kyu 04)

Codewars 알고리즘 풀이


Description

  • You get an array of numbers, return the sum of all of the positives ones.
    • 모든 양수의 합을 반환한다.



Solution 01

function sumPositive(arr) {
  let result = 0;
  
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] > 0) {
      result += arr[i];
    }
  }
  
  return result;
}

sumPositive([]);                // 0
sumPositive([0]);               // 0
sumPositive([1, 2, 3, 4, 5]);   // 15
sumPositive([-1, -2, -3, -4]);  // 0
sumPositive([-1, 0, 1, 2]);     // 3


Solution 02

function sumPositive(arr) {
  let result = 0;
  
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] > 0) result += arr[i];
  }
  
  return result;
}

sumPositive([]);                // 0
sumPositive([0]);               // 0
sumPositive([1, 2, 3, 4, 5]);   // 15
sumPositive([-1, -2, -3, -4]);  // 0
sumPositive([-1, 0, 1, 2]);     // 3


Solution 03

function sumPositive(arr) {
  let result = 0;
  
  arr.forEach((i, index, arr) => {
    if (i > 0) {
      result += i;
    }
  });
  
  return result;
}

sumPositive([]);                // 0
sumPositive([0]);               // 0
sumPositive([1, 2, 3, 4, 5]);   // 15
sumPositive([-1, -2, -3, -4]);  // 0
sumPositive([-1, 0, 1, 2]);     // 3


Solution 04

function sumPositive(arr) {
  return arr.reduce((result, i) => result + (i > 0 ? i : 0), 0);
}

sumPositive([]);                // 0
sumPositive([0]);               // 0
sumPositive([1, 2, 3, 4, 5]);   // 15
sumPositive([-1, -2, -3, -4]);  // 0
sumPositive([-1, 0, 1, 2]);     // 3


Solution 05

function sumPositive(arr) {
  return arr.filter(i => i > 0).reduce((result, i) => result + i, 0);
}

sumPositive([]);                // 0
sumPositive([0]);               // 0
sumPositive([1, 2, 3, 4, 5]);   // 15
sumPositive([-1, -2, -3, -4]);  // 0
sumPositive([-1, 0, 1, 2]);     // 3