在所有数组元素之间添加“逗号”分隔符,在最后一个数组元素之前添加“和”

时间:2018-03-13 00:48:17

标签: javascript arrays

我试图在一行中显示一个数组的数组项,除以'逗号',但最后一个数组项应该以'和'开头,并且应该在最后一个元素的末尾添加一个句号。

例如:

var cars = new Array("Saab", "Volvo", "BMW", "ZEST", "Audi");

应显示为萨博,沃尔沃,宝马,ZEST和奥迪。

var cars = new Array("Saab", "Audi");

如果只有2个项目,那么它应显示为萨博和奥迪。

var cars = new Array("Saab");

如果只有1个项目,则应显示为 Saab。

数组长度是动态的,但它应该遵循上面的格式,即所有数组项应该用逗号分隔,但第二个最后一个数组项和最后一个数组项之间应该有'和'。

var cars = new Array("Saab", "Volvo", "BMW", "ZEST", "Audi");

for (i = 0; i < cars.length; i++) {

  var total = cars.length;
  var lastbut = total - 1;
  var disp;
  var addand = "";


  if (i != cars.length - 1) {
    disp = ", "
  } else {
    addand = "and "
    disp = "."
  }


  document.write(addand + cars[i] + disp);

}

https://jsfiddle.net/f01ph8pa/2/

我无法完成此操作。你能帮忙吗?

2 个答案:

答案 0 :(得分:4)

使用slice获取数组中除最后一个字符串外的所有字符串,并使用逗号join获取它们;然后添加&#34;和&#34;和数组中的最后一个字符串。

function listStrings(arr) {
  if (arr.length <= 1) {
    return arr[0] + '.';
  }
  return arr.slice(0, arr.length - 1).join(", ") + ' and ' + arr[arr.length - 1] + '.';
}

listStrings(['A', 'B', 'C', 'D']); // returns "A, B, C and D."
listStrings(['A', 'B']);   // returns "A and B."
listStrings(['A']);   // returns "A."

https://jsfiddle.net/81ykw0uL/18

答案 1 :(得分:1)

以下方式怎么样?首先用逗号连接数组元素,然后用'和'替换最后一个逗号。

src='/profiles_images/***.png'