我正在寻找下面的任何替代方法来创建一个包含1到N的JavaScript数组,其中N仅在运行时已知.
var foo = [];
for (var i = 1; i <= N; i++) {
foo.push(i);
}
Run Code Online (Sandbox Code Playgroud)
对我而言,感觉应该有一种没有循环的方法.
在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来实现这个Javascript?我显然可以使用一个函数,但我想知道是否有任何内置方法,或其他一些聪明的技术.
在JavaScript中,如何以简洁的方式重复包含多个元素的数组?
在Ruby中,你可以做到
irb(main):001:0> ["a", "b", "c"] * 3
=> ["a", "b", "c", "a", "b", "c", "a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
我查了一下lodash库,没找到任何直接适用的东西.功能请求:重复数组.是一个将其添加到lodash的功能请求,以及给出的最佳解决方法
const arrayToRepeat = [1, 2, 3];
const numberOfRepeats = 3;
const repeatedArray = _.flatten(_.times(numberOfRepeats, _.constant(arrayToRepeat)));
Run Code Online (Sandbox Code Playgroud)
问题创建零填充JavaScript数组的最有效方法?并创建一个具有相同元素重复多次的数组,专注于多次重复单个元素,而我想重复一个具有多个元素的数组.
使用维护良好的库是可以接受的.
我一直试图将invRegex.py移植到node.js实现一段时间,但我仍然在努力解决它.由于ret.js标记器,我已经有了正则表达式解析树,并且它工作得很好,但是以一种节省内存的方式实际生成和连接所有不同的元素对我来说是非常具有挑战性的.为了简单起见,我可以说我有以下正则表达式:
[01]{1,2}@[a-f]
Run Code Online (Sandbox Code Playgroud)
提供以invRegex.py产生以下输出(标签化以占用更少的空间):
0@a 0@b 0@c 0@d 0@e 0@f
00@a 00@b 00@c 00@d 00@e 00@f
01@a 01@b 01@c 01@d 01@e 01@f
1@a 1@b 1@c 1@d 1@e 1@f
10@a 10@b 10@c 10@d 10@e 10@f
11@a 11@b 11@c 11@d 11@e 11@f
Run Code Online (Sandbox Code Playgroud)
考虑到我能够获得每个单独的令牌并生成所有有效单个输出的数组:
[01]{1,2} = function () {
return ['0', '00', '01', '1', '10', '11'];
};
@ = function () {
return ['@'];
};
[a-f] = function () {
return ['a', 'b', 'c', 'd', 'e', …Run Code Online (Sandbox Code Playgroud) var fruits = [];
fruits.push("lemon", "lemon", "lemon", "lemon");
Run Code Online (Sandbox Code Playgroud)
而不是推动相同的元素,如何像这样写一次:
fruits.push("lemon" * 4 times)
Run Code Online (Sandbox Code Playgroud) 假设我给了一个数组.这个数组的长度是3,有3个元素:
var array = ['1','2','3'];
Run Code Online (Sandbox Code Playgroud)
最后我需要检查这个数组是否等于具有相同元素的数组,但现在只需要两次.我的新阵列是:
var newArray = ['1','2','3','1','2','3'];
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用array.splice()来复制数组,但是如何复制它的次数不明?基本上我想要的是会产生影响的东西
var dupeArray = array*2;
Run Code Online (Sandbox Code Playgroud) 我在此链接上找到了如何创建具有选定数量的零的数组。 创建零填充 JavaScript 数组的最有效方法?
但我的问题是,想象我已经有一个数组
var a = ['hihi','haha']
Run Code Online (Sandbox Code Playgroud)
如何在我的两个第一个元素后添加 12 个零?所以它变成:
a = ['hihi','haha',0,0,0,0,0,0,0,0,0,0,0,0];
Run Code Online (Sandbox Code Playgroud)
我当然可以去
for(var i = 0; i < 12, i++){
a.push(0);
}
Run Code Online (Sandbox Code Playgroud)
但是有一种单行方法吗?就像是
a.push(6*[0]);
Run Code Online (Sandbox Code Playgroud) 这是在javascript中.到目前为止,我有这个:
var double = function (array) {
var array = [];
for(var i = 0; i<array.length; i++) {
var sum = array[i] + array[i];
}
return sum;
};
Run Code Online (Sandbox Code Playgroud)
......基本上,如果我进入这个区域:
var a = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
我希望函数返回:
[1,1,2,2,3,3]
Run Code Online (Sandbox Code Playgroud)
...等等
我想用一个数字创建数组。是否可以?
在 array = 60 中,我的意思是 array[1, 2, 3 ...60],但我想要这个数组只有一个数字。
我想要这样的东西。
JavaScript:
let array = 60;
const map1 = array.map(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)
console.log 必须出现 60 次。