JavaScript의 단순 복수형

5719 단어 javascript
Ruby on Rails 스택 위에서 Vue.js로 작업하는 동안 백엔드에서 액세스할 수 있었던 몇 가지 유용한 유틸리티를 프론트 엔드에서 복제하는 자신을 발견했습니다. 그 중 하나는 복수형으로 with 또는 without 숫자입니다.

단어의 단수 또는 복수 버전을 사용해야 하는지 알아 내려고 유사한ternaries 여러 구성 요소를 찾은 후 해당 논리를 자체 조각으로 추출할 좋은 기회를 보았고 다음과 같이 끝냈습니다.

const pluralize = (count, singular, { plural, number } = {}) => {
  const message = count === 1 ? singular : (plural || `${singular}s`);

  return number === false ? message : `${count} ${message}`;
};

// Uses:
pluralize(1, 'mouse') // 1 mouse
pluralize(2, 'house') // 2 houses
pluralize(2, 'house', { number: false }) // houses
pluralize(2, 'mouse', { plural: 'mice' }) // 10 mice
pluralize(2, 'mouse', { plural: 'mice', number: false }) // mice



간단히 말해서 작동 방식은 다음과 같습니다.
  • 항상 고려할 숫자와 단수형을 전달해야 합니다. 그러면 <number> <bigger than 1 ? (singular + 's') : singular> ;
  • 복수형이 불규칙한 경우(즉, singular + s가 아님), 제공할 수 있습니다.
  • 숫자 없이 단수/복수만 필요하시면 그렇게 말씀하시면 됩니다.

  • 보너스 포인트: 약간의 미니멀리스트이고 몇 가지 키 입력을 즐기는 경우 다음과 같이 설정할 수 있습니다.

    // plural with number
    const pn = (n, s, plural) => pluralize(n, s, { plural });
    // plural without number
    const p = (n, s, plural) => pluralize(n, s, { plural, number: false });
    
    

    좋은 웹페이지 즐겨찾기