组合字符串数组直到达到一定长度

时间:2017-10-29 15:18:26

标签: javascript arrays performance multidimensional-array

重复:Combining strings in an array upto certain length

var chars = 100;

var s = [
"when an unknown printer took a galley of type and scrambled it to make a type specimen book",  //contains 91 chars
"essentially unchanged. It was popularised in the 1960s with the release",          //contains 71 chars
"unchanged essentially. popularised It was in the 1960s with the release",          //contains 71 chars
"It is a long established", //contains 24 chars
"search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years",    //contains 121 chars
"injected humour and the like"          //contains 28 chars
]

如果当前句子中的字符数 LESS 而不是变量chars=100

,我想加入(通过\ n)下一句

如果chars=100

1)s[0]小于100,所以我必须加入s[1]s[1]

2)s[2]小于100,所以我必须加入s[3]但仍然在合并之后它们是95因此我需要进一步加入s[4]

3)显示s[5],因为列表为空

预期输出:

1)当一个未知的打印机拿了一个类型的厨房并乱扰它制作一个类型的标本书        基本不变。它在20世纪60年代随着发行而普及

2)基本不变。推广它是在20世纪60年代发布的        这是一个历史悠久的        搜索' lorem ipsum'将发现仍处于起步阶段的许多网站。多年来各种版本都在不断发展

3)注入幽默等

如何使用最快的代码在JS中实现?

var x = "";
var y = [];
for (var i = 0; i < s.length; i++) {
 if(x.length<100)
 {
    x=x+s[i];
    continue;
 }
y.push(x)
x="";

}

y.push(x)
console.log(y.join("\n\n"));

2 个答案:

答案 0 :(得分:1)

您可以通过执行类似

的操作来计算单词
return str.split(' ').length;

这将返回一个数组的长度,每个单词都作为索引。

但是你应该尝试自己的,我们可以帮助修复你的尝试!

答案 1 :(得分:1)

我建议您有一个输出字符串并迭代数组,并在每次满足条件时向元素追加一个元素。

像这样:

var outputString = "";
for (var i = 0; i < s.length; i++) {
    if(s[i].length < 100) {
        outputString.append(s[i])
    }
}
return outputString