在数组中写出项目会在每个项目后面生成逗号

时间:2017-04-09 03:14:25

标签: javascript arrays

我打印出HTML列表中数组中的项目:

"use strict";

var giftArray = ["kettle", "iron", "bed", "tv", "lamp"];
var gifts = function() {
  var values= [];
  for (var i = 0; i < giftArray.length; i++) {
    values.push("<li>" + giftArray[i] + "</li>");
  }
  document.write("<ul>" + values + "</ul>");
}

gifts();

它的工作除了它在每个结果后包含一个逗号。为什么会这样,我怎么能阻止它呢?

2 个答案:

答案 0 :(得分:1)

将join()与空字符串一起用作分隔符

document.write("<ul>" + values.join('') + "</ul>");

将数组写入dom时的默认设置是使用包含逗号分隔符的Array.prototype.toString()将其转换为字符串

答案 1 :(得分:0)

如果使用字符串连接数组,则会得到默认数组.toString()表示形式,这是用逗号连接的所有元素。

使用the .join() method使用您选择的分隔符连接数组的所有元素,例如,使用空字符串:

var giftArray = ["kettle", "iron", "bed", "tv", "lamp"];
var gifts = function() {
  var values= [];
  for (var i = 0; i < giftArray.length; i++) {
    values.push("<li>" + giftArray[i] + "</li>");
  }
  document.write("<ul>" + values.join("") + "</ul>");
}

gifts();

或者您可以使用.join()代替循环,将原始giftArray与适当的HTML标记结合使用:

var giftArray = ["kettle", "iron", "bed", "tv", "lamp"];
var gifts = function() {
  document.write("<ul><li>" + giftArray.join("</li><li>") + "</li></ul>");
}

gifts();