Javascript comma list but has an and at the last one

前端 未结 3 787
别那么骄傲
别那么骄傲 2021-01-17 09:30

I am trying to create a function that will take a list of words -- and covert it into a sentence like this.

jsfiddle

http://jsfiddle.net/0ht35rpb/107/

<
3条回答
  •  甜味超标
    2021-01-17 09:52

    The function you have commented out seems to be right, except that it's using some property off this rather than the parameter passed to it.

    Adjusting that, you get this:

    const grammarCheck = function(vals) {
      return [ vals.slice(0, -1).join(", "), vals.slice(-1)[0] ]
             .join(vals.length < 2 ? "" : " and ");
    }
    grammarCheck(['foo']); //=> 'foo'
    grammarCheck(['foo', 'bar']); //=> 'foo and bar'
    grammarCheck(['foo', 'bar', 'baz']); //=> 'foo, bar and baz'
    grammarCheck(['foo', 'bar', 'baz', 'qux']); //=> 'foo, bar, baz and qux'
    

    Obviously, you could alter this a bit if you want the Oxford comma.

提交回复
热议问题