关于JS创建数组的问题求大神指教。

我想要的效果是,已知数组的长度,然后跟据这个长度创建相对应的内容。如:
已知数组创度为8现在我要跟据这个数组的长度创建8个内容;

var array_oBox=new Array([8]);//数组长度是动态获取到的的一数值。然后我想把上面的数组长度转化为:
var arry_oBox1 = [0,0,0,0,0,0,0,0];//这种表现形式。这个要怎么做呀,谢谢大神帮指教一下哈。

阅读 3.3k
6 个回答
var value = 0;
var arrLength = 8;
var arr = (new Array(arrLength+1)).join(value).split('');
//["0", "0", "0", "0", "0", "0", "0", "0"]

假设获取到的长度为length

for(var i=0; i < length; i++) {
    arry_oBox1[i]=0;
}

你看这样可以么?

var arr=Array.apply(null,new Array(10)).map(function(){return 0});
var arr=Array.from({length:10},function(){return 0})
var arr=[];
for(var i=0;i<10;i++){arr[i]=0}
const value = '0'
value.repeat(8).split('')

上边不是一个好方法(还需要在支持 ES6 的环境下才能使用)。

乖乖地使用字面量或者循环赋值吧,你还想搞什么花样呢?只会让代码更难读。

最直接的方式就是 @kaim1226 的循环,也可以这样

var len = 8;

Array.apply(null, { length: len}).map(function() { return 0; });

如果用 es6,语法可以更简洁一些

const len = 8;
Array.apply(null, { length: len }).map(() => 0);
var len = 8,
    array = new Array(len).fill("0");
console.log(array); // ["0", "0", "0", "0", "0", "0", "0", "0"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题