Shorcut将增量值存储在数组中?

时间:2017-10-24 09:32:11

标签: javascript arrays loops

这是我目前的代码:

let array = [`1 (1).jgp`,`1 (2).jgp`,`1 (3).jgp`,`1 (4).jgp`,`1 (5).jgp`,`1 (6).jgp`,`1 (7).jgp`,`1 (8).jgp`,`1 (9).jgp`,`1 (10).jgp`,`1 (11).jgp`]
//rest of the code

是否有更有效的方式存储数据?

我试过了:

for (i = 0; i < 12; i++) {
    let array = [`1`+(i)+`.jgp`]
};
//rest of the code

但是,当我试图调用数组时,它返回: 未捕获的ReferenceError:未定义数组     at:1:1

我也尝试过:

let array = [`1`+(i = 0; i < 12; i++)+`.jgp`]
//rest of the code

但是返回了:Uncaught SyntaxError:意外的令牌;

请让我知道我做错了什么?或者我如何使这个代码更有效。 谢谢,

3 个答案:

答案 0 :(得分:5)

您可以使用Array#from生成数组:

const arr = Array.from({ length: 10 }, (_, i) => `1 (${i + 1}).jgp`);

console.log(arr);

虽然简单的for循环也可以起作用:

const array = []; // declare an empty array

for (let i = 1; i <= 10; i++) {
    array.push(`1 (${i}).jgp`); // push each item to the array
};

console.log(array);

答案 1 :(得分:0)

  

是否有更有效的方式存储数据?

您的意思是以这样的方式存储需要更少的存储空间?

以此格式存储

var arrayObj = {
  template : "{{i}} ({{i}}).jgp",
  startIndex : 1,
  endIndex : 10
};
  

或者我如何使这段代码更有效率。

如果使用多少存储空间不是问题,那么只需使用一个简单的迭代器

var array = [];
for( var counter = 1; counter <= 10; counter++ )
{
  array.push(  "1 ( " + counter + " ).jgp" );
}

答案 2 :(得分:-1)

你可以做到

let array = [];
for (let i = 0; i < 12; i++) {
    array.push(`1 (`+i+`).jgp`);
};
console.log(array);