분류 javascript

Javascript 30초 Snippet - String : pluralize

컨텐츠 정보

  • 조회 75 (작성일 )

본문

입력 숫자를 기준으로 단수 또는 복수 형태의 단어를 반환합니다. 

첫 번째 인수가 객체 인 경우 제공된 사전에 단어가 포함되어 있으면 s로 끝나지 않는 단어를 자동 복수화 할 수 있는 함수를 반환하여 클로저를 사용합니다.


num이 -1 또는 1이면 단수 형태의 단어를 반환하십시오. num이 다른 숫자이면 복수형을 반환합니다. 

단수형 단어 + s의 기본값을 사용하려면 세 번째 인수를 생략하거나 필요한 경우 사용자 정의 된 복수형 단어를 제공하십시오. 

첫 번째 인수가 객체 인 경우 제공된 사전을 사용하여 올바른 복수형 단어를 해결할 수 있는 함수를 반환하여 클로저를 사용하십시오.


const pluralize = (val, word, plural = word + 's') => {
  const _pluralize = (num, word, plural = word + 's') =>
    [1, -1].includes(Number(num)) ? word : plural;
  if (typeof val === 'object') return (num, word) => _pluralize(num, word, val[word]);
  return _pluralize(val, word, plural);
};


ex)


pluralize(0, 'apple'); // 'apples'
pluralize(1, 'apple'); // 'apple'
pluralize(2, 'apple'); // 'apples'
pluralize(2, 'person', 'people'); // 'people'

const PLURALS = {
  person: 'people',
  radius: 'radii'
};
const autoPluralize = pluralize(PLURALS);
autoPluralize(2, 'person'); // 'people'