如何设置console.log打印数组时每行显示7列元素?
控制台自定义数组打印每行元素个数的实现方案
console.log打印数组时的自动换行是JS运行环境(浏览器DevTools、Node.js)内置的格式化逻辑,没有提供修改默认列数的配置项,无法直接通过参数调整为每行7个元素,需要手动对数组做切片格式化后再输出,可直接复用下面的代码:
方案1:还原原生数组打印格式
输出样式和默认打印数组的格式完全一致,仅将每行元素数调整为7:
const res = myFunction(arguments); const lineSize = 7; const chunks = []; for (let i = 0; i < res.length; i += lineSize) { chunks.push(res.slice(i, i + lineSize)); } console.log(`[\n ${chunks.map(line => line.map(item => `'${item}'`).join(', ')).join(',\n ')}\n]`);
执行后输出结果如下,刚好每行7个元素:
[ 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5' ]
方案2:表格形式输出(可读性更高)
如果不需要严格匹配数组字面量格式,只是要按7列清晰查看元素,可以用console.table输出结构化表格:
const res = myFunction(arguments); const lineSize = 7; const tableData = []; for (let i = 0; i < res.length; i += lineSize) { const row = {}; res.slice(i, i + lineSize).forEach((val, idx) => row[`col${idx+1}`] = val); tableData.push(row); } console.table(tableData);
注意:切勿直接将原数组传入
console.log,只要传入的是数组类型的原始引用,控制台就会强制走内置格式化逻辑,使用默认的5列规则换行,必须先自行处理为自定义格式的内容后再打印,才能控制每行显示的元素数量。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

