我试图在用“逗号”分隔的一行中显示数组的数组项,但最后一个数组项前面应该有“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/