- 编写一个函数,该函数获取字符串列表,并在矩形框架中每行打印一个字符串。例如,列表["Hello"、"World"、"in"、"a"、"frame"]被打印为:
*********
* Hello *
* World *
* in *
* a *
* frame *
*********
我的代码
var x = "hellonworldninnanframe";
function star(str) {
let arr = [];
arr = str.split("n");
for (let index = 0; index < 1; index++) {
console.log("*******");
for (let j = 0; j <= arr.length; j++) {
arr == arr[j].split(",");
console.log("*" + arr[j] + "*" );
}
}
console.log("******");
return arr;
}
console.log(star(x));
我会这样做,但我相信还有更好的方法。
function makeStarBox(arr){
const longest = arr.reduce((a, b) => a.length <= b.length ? b : a);
const box_width = longest.length + 2;
console.log("*".repeat(box_width));
arr.map(str => console.log("*" + str + " ".repeat(box_width - (str.length + 2)) + "*"));
console.log("*".repeat(box_width));
}
不过,看起来你确实在发布一个实际的家庭作业/考试问题,所以一定要学习代码,并亲自学习它的实际作用。如果您不知道map
、reduce
或repeat
的作用,请查看文档并学习:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat