функция, которая принимает список строк и печатает их, по одной на строку, в прямоугольном фрейме

#javascript #reactjs

#javascript #reactjs

Вопрос:

  1. Напишите функцию, которая принимает список строк и печатает их, по одной на строку, в прямоугольной рамке. Например, список [«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));
 

Комментарии:

1. сначала попробуйте решить это самостоятельно. И вставьте сюда код, на котором вы застряли. Этот портал не предназначен для решения домашних заданий

2. Я пытался, но он показывает ошибку

3. это вопрос?

Ответ №1:

Вот как я бы это сделал, но я уверен, что есть способы получше.

 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