removeRotten.js (7kyu 74)

Codewars 알고리즘 풀이


Problem

  • Our fruit guy has a bag of fruit where some fruits are rotten.
    • 과일 주인은 썩은 과일이 포함되어 있는 과일 포대를 가지고 있다.
  • Your task is to implement a method that accepts an array of strings containing fruits should returns an array of strings where all the rotten fruits are replaced by good ones.
    • 모든 썩은 과일을 신선한 과일로 대체하는 메소드를 작성한다.


Solution 01

function removeRotten(arr) {
  return arr ? arr.map(i => i.replace('rotten', '').toLowerCase()) : [];
}

removeRotten([]);                         // []
removeRotten(['apple', 'rottenBanana']);  // ['apple', 'banana']
removeRotten(['apple', 'rottenMelon']);   // ['apple', 'melon']

map(): 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.

replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.

toLowerCase(): 문자열을 소문자로 변환한다.


Solution 02

function removeRotten(arr) {
  return arr ? arr.map(i => i.toLowerCase().replace(/rotten/gi, '')) : [];
}

removeRotten([]);                         // []
removeRotten(['apple', 'rottenBanana']);  // ['apple', 'banana']
removeRotten(['apple', 'rottenMelon']);   // ['apple', 'melon']