JSFiddle - React, Tailwind, and code Playground
by prozoroff
JavaScript
var a = {
"width": 1124.2799999999997,
"height": 23.4,
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"delimiter": {"text": " ", "width": 6.02},
"parts": [{"text": "Lorem", "width": 56.14000000000001}, {
"text": "ipsum",
"width": 52.46
}, {"text": "dolor", "width": 46.30000000000001}, {"text": "sit", "width": 21.72}, {
"text": "amet,",
"width": 53.26
}, {"text": "consectetur", "width": 105.90000000000002}, {
"text": "adipiscing",
"width": 88.84
}, {"text": "elit,", "width": 37.76}, {"text": "sed", "width": 30.14}, {
"text": "do",
"width": 21.88
}, {"text": "eiusmod", "width": 74.1}, {"text": "tempor", "width": 65.08}, {
"text": "incididunt",
"width": 89.96000000000002
}, {"text": "ut", "width": 18.84}, {"text": "labore", "width": 56.959999999999994}, {
"text": "et",
"width": 18.82
}, {"text": "dolore", "width": 57.2}, {"text": "magna", "width": 58.55999999999999}, {
"text": "aliqua.",
"width": 61.99999999999999
}]
};
function getPossibleBreaks(obj){
var result = [],
parts = obj.parts,
length = parts.length;
for(var i = 0; i < length; i++){
var sum = 0;
for(var j = i; j < length; j++){
sum += parts[j].width;
if(result.indexOf(sum) < 0){
result.push(sum);
}
sum += obg.delimiter.width;
if(result.indexOf(sum) < 0){
result.push(sum);
}
}
}
return result.sort(function(a, b) {
return a - b;
});
}
alert(getPossibleBreaks(a));