/*
This program wraps a string into lines of maximum width w.
Method:
- Split the input text into words using split().
- Build each line until adding another word would exceed the width.
- When the limit is reached, store the line and begin a new one.
- Uses arrays and string operations for clear and efficient processing.
*/
function wrapText(text, w) {
const words = text.split(/\s+/); // Split on whitespace
let line = "";
let result = "";
for (const word of words) {
// If line is empty, start it with the word
if (line.length === 0) {
line = word;
}
else {
// Check if adding the next word exceeds width
if (line.length + 1 + word.length <= w) {
line += " " + word;
} else {
// Store the completed line
result += line + "\n";
line = word;
}
}
}
// Add the final line
if (line.length > 0) {
result += line;
}
return result;
}
// Usage
const sample =
"JavaScript provides useful built-in tools for handling strings. " +
"This program demonstrates how to wrap text cleanly and efficiently.";
console.log(wrapText(sample, 35));
/*
run:
JavaScript provides useful built-in
tools for handling strings. This
program demonstrates how to wrap
text cleanly and efficiently.
*/