首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中将大字符串拆分成n大小的块

在JavaScript中将大字符串拆分成n大小的块
EN

Stack Overflow用户
提问于 2011-08-12 06:22:36
回答 17查看 197.1K关注 0票数 257

我想将一个非常大的字符串(比方说,10,000个字符)分成N个大小的块。

在性能方面,什么是实现这一目标的最佳方法?

例如:除以2的"1234567890"将变成["12", "34", "56", "78", "90"]

使用String.prototype.match可以做到这一点吗?如果可以,从性能上来说,这是不是最好的方法?

EN

回答 17

Stack Overflow用户

发布于 2015-03-23 11:15:34

我创建了几个更快的变种,你可以see on jsPerf。我最喜欢的一条是:

代码语言:javascript
复制
function chunkSubstr(str, size) {
  const numChunks = Math.ceil(str.length / size)
  const chunks = new Array(numChunks)

  for (let i = 0, o = 0; i < numChunks; ++i, o += size) {
    chunks[i] = str.substr(o, size)
  }

  return chunks
}
票数 50
EN

Stack Overflow用户

发布于 2013-01-16 08:41:05

这是一个快速而直接的解决方案-

代码语言:javascript
复制
function chunkString (str, len) {
  const size = Math.ceil(str.length/len)
  const r = Array(size)
  let offset = 0
  
  for (let i = 0; i < size; i++) {
    r[i] = str.substr(offset, len)
    offset += len
  }
  
  return r
}

console.log(chunkString("helloworld", 3))
// => [ "hel", "low", "orl", "d" ]

// 10,000 char string
const bigString = "helloworld".repeat(1000)
console.time("perf")
const result = chunkString(bigString, 3)
console.timeEnd("perf")
console.log(result)
// => perf: 0.385 ms
// => [ "hel", "low", "orl", "dhe", "llo", "wor", ... ]

票数 26
EN

Stack Overflow用户

发布于 2018-06-21 03:21:06

惊喜吧!您可以使用split进行拆分。

代码语言:javascript
复制
var parts = "1234567890 ".split(/(.{2})/).filter(O=>O)

[ '12', '34', '56', '78', '90', ' ' ]格式的结果

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7033639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档