@Konstantin_555

Как выровнять строки?

Есть переменная str1 – это количество знаков ширина экрана. По этой ширине нужно выровнять строки.

И есть переменные с названиями и ценой. Нужно создать функцию на JS, чтобы текст выравнивался по правому краю.
var str1 = 50;
var  name1 = "абрикосы";
var  price1 = 20;

var  name2 = "тыква"
var price2 = 50;

var name3 = "уи";
var price3 = 1000;

var res;

Пример готовой функции: resRight(str1, name1, price1);
картинка
61b5edeb923b3231623695.jpeg
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если шрифт моноширинный, то, условно, так:
const minGap = 3;
const keys = ['name', 'price'];  
const input = [
  {
    name: "абрикосы",
    price: 20
  },
  {
    name: "тыква",
    price: 50
  },
  {
    name: "уи",
    price: 1000
  }
];


const maxLengths = keys.slice().fill(0);
const normalizedInput = input.map(item => keys.reduce((acc, key, i) => {
  const current = String(item[key]);
  const currentLength = current.length;

  if(currentLength > maxLengths[i]) 
    maxLengths[i] = currentLength;

  acc[key] = current;   
  acc.length += currentLength;

  return acc;
}, { length: 0 }));

const maxLength = maxLengths.reduce(
  (sum, current) => sum + current, 
  minGap
);

const res = normalizedInput
  .map(({
    name, 
    price, 
    length
  }) => name + ' '.repeat(maxLength - length) + price)
  .join('\n');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
на картинке шрифт не моноширинный — символы имеют разную ширину. Выровнять такой можно средствами HTML и CSS. Javascript тут не при чём.

p.s. «выровнять» пишется через «я»
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы