【发布时间】:2011-09-12 01:44:18
【问题描述】:
创建这个数组最简单的方法是什么:
var x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
例如,for 循环:
var x = [];
for (var i=1;i<=20;i++) {
x.push(i);
}
或while 循环:
var x = [], i = 1, endInt = 20;
while (i <= endInt) {
x.push(i);
i++;
}
是否还有其他更简洁的示例 - 换句话说 - 更少的代码?我在想像在 Ruby 中的东西,我相信等效代码就像1..20 一样简单。我不知道 JavaScript 中的语法,但我想知道是否有更短的方法来做同样的事情。
更新:我没有考虑删除分号或var 以获得问题的答案,但我不得不承认这个问题暗示了这一点。我对算法比对字节更感兴趣。对不起,如果我不清楚!另外,把它变成一个函数也很简单,只需在它周围拍一下function range(start, end) { /* guts here */ } 就可以了。问题是“胆量”是否有新的方法。
【问题讨论】:
-
代码简洁是否重要,或者这只是一个思想实验?
-
真正的思想实验比什么都重要。我正在创建一个数组并实际上在考虑 PHP,我可以在其中执行
var $x = range(1, 20);... 就像,为什么不使用 JavaScript? -
为什么不在JS中创建函数
range()并使用它呢? -
push()方法在这里实际上不是很聪明,因为动态数组增长。如果您事先知道字段的数量,您应该使用大小显式初始化并通过索引填充字段:x[i-start_i] = i; -
不禁认为 svicks 的评论是正确的答案。毕竟是JS。
标签: javascript algorithm