如何修改二维嵌套数组 拼接元素为长度29字符的字符串?
实现方法
核心逻辑很直接:遍历原二维数组的每一个子项,针对每个子数组里的姓名、百分比两个值,计算两者之间需要填充的空格数:空格数 = 固定总长度29 - 姓名字符串长度 - 百分比字符串长度,把姓名、对应数量的空格、百分比拼接成一个字符串,最终收集成一维数组即可。
可直接运行的代码(JavaScript)
// 原始二维数组 const source = [ ['Alex', '167%'], ['Benjamin', '127%'], ['Elijah', '117%'], ['Liam', '136%'], ['Theodore', '135%'], ['Mia', '128%'] ]; const TOTAL_LENGTH = 29; const result = source.map(([name, percent]) => { const padSpaceCount = TOTAL_LENGTH - name.length - percent.length; return name + ' '.repeat(padSpaceCount) + percent; }); // 验证:打印结果、校验所有项长度是否符合要求 console.log(result); console.log(result.every(item => item.length === TOTAL_LENGTH)); // 输出true即为符合要求
兼容说明
如果需要兼容IE等不支持String.prototype.repeat的老旧环境,可以替换成自定义的空格生成方法:
// 生成指定长度的空格字符串 function genSpaces(count) { let spaceStr = ''; for (let i = 0; i < count; i++) { spaceStr += ' '; } return spaceStr; } // 替换原来的repeat调用即可 return name + genSpaces(padSpaceCount) + percent;
运行后得到的结果和需求给出的示例格式完全一致,所有字符串总长度固定为29,姓名左对齐,百分比值对齐到最右侧。
内容的提问来源于stack exchange,提问作者ZxNuClear
相关产品推荐
相关产品推荐

