一种更易读的方法吗?

Hai*_*ood 6 javascript

我知道有一种更可读的方式来写这个:

var string = ( 
  (r.d != 0 ? r.d + (r.d == 1 ? ' day' : ' days') : '' ) +
  (r.h != 0 ? r.h + (r.h == 1 ? ' hour' : ' hours') : '' ) +
  (r.m != 0 ? r.m + (r.m == 1 ? ' minute' : ' minutes') : '' ) +
  (r.s != 0 ? r.s + (r.s == 1 ? ' second' : ' seconds') : '' ));
Run Code Online (Sandbox Code Playgroud)

Kob*_*obi 6

尝试一些更具可读性的东西:

function singleOrPlural(val, single, plural){
  if(val == 1)
    return val + ' ' + single;
  if(val > 1)
    return val + ' ' + plural;
  return '';
}
Run Code Online (Sandbox Code Playgroud)

用于:

singleOrPlural(r.day, 'day', 'days')
Run Code Online (Sandbox Code Playgroud)

你甚至可以坚持下去,并将其添加到prototype最终r.days.singleOrPlural('day', 'days'),但我不认为这里需要它.