Javascript javascript从for循环创建数组
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12491101/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
javascript create array from for loop
提问by Mauro74
I have a years range stored into two variables. I want to create an array of the years in the range.
我有一个存储在两个变量中的年份范围。我想在该范围内创建一个年份数组。
something like:
就像是:
var yearStart = 2000;
var yearEnd = 2040;
var arr = [];
for (var i = yearStart; i < yearEnd; i++) {
var obj = {
...
};
arr.push(obj);
}
What should I put inside the obj ?
我应该在 obj 里面放什么?
The array I'd like to generate would be like:
我想生成的数组将是这样的:
arr = [2000, 2001, 2003, ... 2039, 2040]
回答by Mat
even shorter if you can lose the yearStart value:
如果您可以丢失 yearStart 值,则更短:
var yearStart = 2000;
var yearEnd = 2040;
var arr = [];
while(yearStart < yearEnd+1){
arr.push(yearStart++);
}
UPDATE: If you can use the ES6 syntax you can do it the way proposed here:
更新:如果您可以使用 ES6 语法,则可以按照此处建议的方式进行操作:
let yearStart = 2000;
let yearEnd = 2040;
let years = Array(yearEnd-yearStart+1)
.fill()
.map(() => yearStart++);
回答by Littm
You need to push i
你需要推 i
var yearStart = 2000;
var yearEnd = 2040;
var arr = [];
for (var i = yearStart; i < yearEnd+1; i++) {
arr.push(i);
}
Then, your resulting array will be:
然后,您生成的数组将是:
arr = [2000, 2001, 2003, ... 2039, 2040]
arr = [2000, 2001, 2003, ... 2039, 2040]
Hope this helps
希望这可以帮助
回答by Mihai Iorga
var yearStart = 2000;
var yearEnd = 2040;
var arr = [];
for (var i = yearStart; i <= yearEnd; i++) {
arr.push(i);
}
回答by skunkfrukt
Remove obj
and just do this inside your for loop:
删除obj
并在您的 for 循环中执行此操作:
arr.push(i);
Also, the i < yearEnd
condition will not include the final year, so change it to i <= yearEnd
.
此外,i < yearEnd
条件不包括最后一年,因此将其更改为i <= yearEnd
。