从循环jquery命名变量

时间:2016-01-25 01:46:00

标签: javascript jquery arrays

以下问题来自https://stackoverflow.com/questions/34981100/jquery-loop-to-generate-variables

所以我试图在我的函数中新创建的数组中创建变量。然后我将不得不将每个新创建的变量调用到我的图表中。

var digits = [2012, 01, 5, 88, 2012, 01, 6, 90, 2012, 05, 9, 130];
size = 3;
data = []

while (digits.length > 0)
data.push(digits.splice(0, size));
var mysize = data.length;
for (i = 0; i < data.length; i++) {
  x = 0
  console.log("This is set " + i)
  console.log('This is the data for array ' + i + '\n ' + data[i])
  for (j = 0; j < 3; j++)
  console.log(data[i][j])

我的第二个console.log语句以四个为一组打印出数组。我需要命名每个数组,然后我需要能够调用我的图表中的每个单独的数组,这是在一个单独的函数中。

现在每个数组都是从

行命名的
console.log('This is the data for array ' + i + '\n ' + data[i])

没有从此行设置变量。

最终结果应该是     my1 = [2012,1,5,88]     my2 = [2012,1,6,90]     my3 = [2012,5,9,130​​] 由于我的数组中的数据可以扩展,我无法知道我需要制作多少个新的变量数组。这就是为什么代码应该自动生成新的数组变量名,并将原始数据分成四组。

然后我必须将每个新创建的变量分别传递到我的图表中。

1 个答案:

答案 0 :(得分:1)

您需要的是一个对象,而不是一个数组。对象具有可用作标识符的键。

&#13;
&#13;
;(function(){
  'use strict';
  
const CHUNK_SIZE = 3;
let digits       = [2012, 1, 5, 88, 2012, 1, 6, 90, 2012, 5, 9, 130];
let names        = ['foo', 'bar', 'baz'];
let data         = {};

for(let i = 0; digits.length; i++)
  data[names[i]] = digits.splice(0, CHUNK_SIZE);

console.log(data.foo);
console.log(data.bar);
console.log(data.baz);  
  
}());
&#13;
&#13;
&#13;

此外,我注意到您的部分号码以0开头。 JS会将它们视为八进制而不是十进制。删除0以使它们成为小数,或者如果要保留它,请改为使用它们。