JavaScript中二维数组输出出现意外逗号的问题求助
问题解决:二维数组打印时的意外逗号
问题出在你直接对二维数组调用join("\n")——JavaScript会默认把每个子数组转为字符串,而数组转字符串时会用逗号分隔元素,所以才出现了多余的逗号。
只需要修改print方法,先把每个子数组的元素拼接成无分隔符的字符串,再把处理后的行用换行符拼接:
class Field { constructor(fieldArr) { this.fieldArr = fieldArr; } get field() { return this.print(); } print() { // 先处理每个子数组,再拼接成行 const formattedField = this.fieldArr .map(row => row.join('')) // 把每个子数组的元素直接连起来 .join("\n"); console.log(formattedField); } } const myField = new Field([ ["*", "░", "O"], ["░", "░", "░"], ["O", "░", "O"] ]) myField.print()
运行后就能得到你期望的输出:
*░O ░░░ O░O
另外提一句:你的field getter返回的是print()的结果,但print()里只有console.log,没有返回值,所以myField.field会是undefined。如果需要让getter返回格式化后的字符串,可以修改print方法,让它返回字符串,同时在内部打印:
print() { const formattedField = this.fieldArr .map(row => row.join('')) .join("\n"); console.log(formattedField); return formattedField; }
内容的提问来源于stack exchange,提问作者itsjames212
相关产品推荐
相关产品推荐

