как вставить перенос строки в текст если он часть объекта
есть вот такой объект
var ENParam = {
title: 'MAIN TECHNICAL CHARACTERISTICS',
importParamText: 'MAIN CHARACTERISTICS:',
Capacity: 'Capacity (t/h)',
Accuracy: 'Accuracy, (%)',
Voltage: 'Voltage / Frequency, (V/Hz)',
Power: 'Power, (KW)',
Weight:'Weight, (KG)'
}
и мне нужно что бы после присваивания текста ENParam.title блоку он в нем выглядел так:
'<div>MAIN</br>TECHNICAL</br>CHARACTERISTICS</div>'
однако как этого добиться я не понимаю
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
мне нужно что бы после присваивания текста ENParam.title блоку он в нем выглядел так
Если сделать свойство приватным. Дописать к нему геттер и сеттер. Можно такое осуществить.
https://learn.javascript.ru/property-accessors
const ENParam = {
_title: null,
importParamText: 'MAIN CHARACTERISTICS:',
Capacity: 'Capacity (t/h)',
Accuracy: 'Accuracy, (%)',
Voltage: 'Voltage / Frequency, (V/Hz)',
Power: 'Power, (KW)',
Weight: 'Weight, (KG)'
}
Object.defineProperty(ENParam, 'title', {
get() {return this._title},
set(value) {
this._title = '<div>' + value.split(' ').join('<br />') + '</div>'
}
})
ENParam.title = 'MAIN TECHNICAL CHARACTERISTICS'
console.log(ENParam)
Автор решения: ΝNL993
→ Ссылка
Этого можно добиться разными способами.
Используя регулярные выражения:
console.log('MAIN TECHNICAL CHARACTERISTICS'.replace(/\w+\s/g, m => m.replace(/\s+/g, '') + '<br>'))
Или же старые добрые циклы:
let str = 'MAIN TECHNICAL CHARACTERISTICS'
let result = ''
for (let i = 0; i < str.length; i++) {
let char = str[i]
result += char === ' ' ? '<br>' : char
}
console.log(result)
А можно и не старые добрые :)
let str = 'MAIN TECHNICAL CHARACTERISTICS'
let result = ''
for (char of str) {
result += char === ' ' ? '<br>' : char
}
console.log(result)
В общем, способов куча, удивлён что вы не нашли не единого способа в итернете.