定义超长字符串或数组

@小蓝阿姨


var s0="",s1="";
for(var i=0;i<20000;i++) 
    s0+="0";
for(var j=0;j<26000;j++){ //大约52000w 为length最大值
  s1+=s0;
} 

console.log("s1 length:"+s1.length/10000+"w");

这段代码26000时可以运行,27000时就不行,js如果定义一个超长数组或字符串该怎么实现呢~非常感谢!

在浏览器环境中可以定义这么一个500多兆的数组,但定义一个500多兆文本就会直接报错,在nodejs就正常

let s0=''
const mArray = []
for(let i = 0; i < 20000; i++) {
  s0 += '0'
}
for(let j = 0; j < 26000; j++) {
  mArray.push(s0)
}
console.log('s1 length:'+(mArray.length * s0.length)/10000+'w')

img

js计算能力有限,实在不行切断分段。