javascript - 在所有数组元素之间添加 'commas' 分隔符,在最后一个数组元素之前添加 'and'

标签 javascript arrays

我试图在用“逗号”分隔的一行中显示数组的数组项,但最后一个数组项前面应该有“and”,并且应该在最后一个元素的末尾添加一个句号。

例如:

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

应显示为 Saab、Volvo、BMW、ZEST 和 Audi。

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

如果只有 2 个项目,那么它应该显示为 Saab 和 Audi。

var cars = new Array("Saab");

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

数组长度是动态的,但应遵循上述格式,即所有数组项应以逗号分隔,但倒数第二个数组项和最后一个数组项之间应有“and”。

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/

我无法完成这个。你能帮忙吗?

最佳答案

使用slice 获取数组中除最后一个字符串之外的所有字符串,并用逗号连接它们;然后在数组中添加“和”以及最后一个字符串。

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

console.log(listStrings(['A', 'B', 'C', 'D']));
console.log(listStrings(['A', 'B']));
console.log(listStrings(['A']));

关于javascript - 在所有数组元素之间添加 'commas' 分隔符,在最后一个数组元素之前添加 'and',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49246597/

相关文章:

c - 仅在 C 中读取数组外部是否危险

c - 为什么C中数组指针的大小总是8?

javascript - 如何在组件内添加计数动画?

javascript - 如何通过 Useraccounts 包从 3rd 方社交登录中提取用户名?

c - 何时在指针上使用数组,反之亦然

python - * : 'Nonetype' and 'Float' with array problem [duplicate]的不受支持的操作数类型的Python错误

php - 我如何在 php 中的简单数组中包含关联数组?

javascript - 如何使用javascript禁用html中的字段

javascript - 如何将odata服务绑定(bind)到SAPUI5表?

javascript - 如何使用 javascript 事件避免在文本字段中输入无效?