Есть ли способ обрезать строку в зависимости от ширины? - PullRequest
1 голос
/ 07 апреля 2020

У меня есть таблица со столбцом ха sh х. Я хочу усечь га sh, чтобы увидеть только несколько из начала и конца, я использовал это

elem.replace(elem.substring(10, elem.length - 10),'...')

Чтобы увидеть только 10 с начала и 10 с конца

, но на В таблице получается, что эффект Z

enter image description here

Так что я хочу обрезать по ширине текста, который я получаю с помощью следующей функции

String.prototype.width = function (font) {
  var f = font || '14px Rubik',
    o = $('<div></div>')
      .text(this)
      .css({
        position: 'absolute',
        float: 'left',
        'white-space': 'nowrap',
        visibility: 'hidden',
        font: f
      })
      .appendTo($('body')),
    w = o.width()

  o.remove()

  return w
}

Мне нужна функция для обрезания строк до тех пор, пока все не станут одинаковыми. Примерно так, но мне нужна помощь с этой функцией или более подходящая идея.

function smartTruncate(elem) {
  const baseWidth = 160
  let elemWidth = elem.width()

  for (let i = 0; i < elem.length; i++) {
    if (elemWidth > baseWidth) {

    }
  }
}

Заранее спасибо!

...