在Python [2]的列表中,以下代码给出此输出:
[2] * 5 # Outputs: [2,2,2,2,2] 是否存在使用JavaScript中的数组执行此操作的简便方法?
我写了下面的函数来做到这一点,但是有没有更短或更短的东西呢?
var repeatelem = function(elem, n){ // returns an array with element elem repeated n times. var arr = [];
for (var i = 0; i <= n; i++) {
arr = arr.concat(elem);
};
return arr;
};
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您可以这样做:
function fillArray(value, len) { if (len == 0) return []; var a = [value]; while (a.length * 2 <= len) a = a.concat(a); if (a.length < len) a = a.concat(a.slice(0, len - a.length)); return a; } 它在每次迭代中将数组加倍,因此可以创建很少迭代的真正大数组。
注意:您还可以通过使用push代替来改善您的功能concat,因为concat每次迭代都会创建一个新数组。像这样(显示为如何使用数组的示例):
function fillArray(value, len) { var arr = []; for (var i = 0; i < len; i++) { arr.push(value); } return arr; } 问题来源于stack overflow