JavaScript中如何基于现有对象创建二维数组并输出指定格式文本
实现方案
你可以通过遍历数组索引,按位置提取对应字段后做左对齐拼接实现,示例代码如下:
const object = { name: ['Jim', 'Jack', 'Betty'], age: [14, 15, 16], gender: ['M', 'M', 'F'] }; // 计算每列内容的最大长度,保证对齐效果 const maxNameLen = Math.max(...object.name.map(item => item.length)); const maxAgeLen = Math.max(...object.age.map(item => String(item).length)); const result = object.name.map((_, index) => { // 按索引取当前行的三个字段,末尾补空格实现左对齐 const nameCol = object.name[index].padEnd(maxNameLen + 1); const ageCol = String(object.age[index]).padEnd(maxAgeLen + 2); return `${nameCol}${ageCol}${object.gender[index]}`; }).join('\n'); console.log(result);
运行后输出结果和你需要的格式完全一致:
Jim 14 M Jack 15 M Betty 16 F
逻辑说明
- 先计算每列内容的最大长度,用来控制对齐规则,避免字段长度不一致时排版混乱
- 遍历任意一个属性数组的索引(本题中三个数组长度一致),按索引取出对应行的姓名、年龄、性别
- 用
padEnd方法给较短的内容末尾补空格,实现左对齐效果 - 最后把所有行用换行符
\n拼接,得到最终格式的文本
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

