如果我的Javascript数组看起来像
searchComponents = ['element1', 'element2', 'element3'];
把它变成一个句子的必要逻辑是什么:
“element1,element2和element3”
同样,如果只有两个元素,则应显示为:
“element1和element2”
等等等等。我被困住了。
最佳答案
一种简单的解决方案:
function arrayToSentence (arr) {
var last = arr.pop();
return arr.join(', ') + ' and ' + last;
}
console.log(arrayToSentence(['one','two','three']));
JS Fiddle demo。
还有一个稍微复杂/荒谬的解决方案(因为有时不喜欢傻的人):
function arrayToSentence (arr) {
var len = arr.length;
return arr.reduce(function(a,b,c){
return a + (c - 1 === length ? ', ' : ' and ') + b;
});
}
console.log(arrayToSentence(['one','two','three']));
JS Fiddle demo。
引用文献:
Array.prototype.join()
。 Array.prototype.pop()
。 Array.prototype.reduce()
。