Есть ли способ добавить пробел в строку на основе длины массива в - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть массив элементов, каждый элемент - это массив строк и чисел.Результат, который я ищу, равен 30 символам для каждого пустого пространства на основе массива, которое, мы надеемся, может быть автоматически добавлено. Пожалуйста, взгляните на код ниже

Я пытался вручную добавить пробел, но мои проблемыЯ не могу посчитать символ каждого массива.

let data = [
      { Name: 'Cafe Latte', Count: 2, Price: 4.75 },
      { Name: 'Americano', Count: 4, Price: 3.75 }
    ];

   let formattedData = [
      ['Cafe Latte' + 'white space' + 2 + ' x ' + 4.75],
      ['Americano' + 'white space' + 4 + ' x ' + 3.75]
   ];

ожидается, что пробел будет добавлен для суммирования длины массива до 30 символов.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Если я понимаю, о чем вы просите, вы хотите использовать padStart или padEnd для создания необходимого пробела.

Здесьпример использования padEnd:

let data = [
  { Name: 'Cafe Latte', Count: 2, Price: 4.75 },
  { Name: 'Americano', Count: 4, Price: 3.75 }
]

let output = data.map(item => {
  let info = `${item.Count} x ${item.Price}`
  let paddedName = item.Name.padEnd(30 - info.length)
  return paddedName + info
})

console.log(output)

Важной частью является то, что она создает часть строки Count/Price и вычитает ее длину из предела размера в 30 символов.Результатом этого является то, сколько места вам нужно заполнить.padEnd затем добавляет необходимые пробелы к Name.Затем две строки объединяются и возвращаются для результата.

Обратите внимание, что если ваши Name и / или строка, полученная из Count/Price, слишком длинные, то пробелов не будет.

0 голосов
/ 27 декабря 2018

Вы можете взять функцию и передать левую и правую часть строки и получить комбинированную строку с пробелами.

function pad(left, right, size) {
    left = left.toString();
    right = right.toString();
    return left + ''.padStart(size - left.length - right.length) + right;
}


let formattedData = [['Cafe Latte', 2 + ' x ' + 4.75], ['Americano', 4 + ' x ' + 3.75]],
    result = formattedData.map(a => pad(...a, 30));

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...