循环中的Javascript push函数

时间:2016-12-15 18:12:28

标签: javascript arrays json push

我正在尝试将图表中的数据从JSON输出推送到多个数组中:

var STORE_A = [];
var STORE_B = [];
var STORE_C = [];
var STORE_D = [];
var STORE_E = [];
var STORE_F = [];

为了避免脚本中出现无数行,我想使用循环。 我想出了如何进行循环,但我不能在“.push”之前使用我的var。

var storeName = ("STORE_"+json[i].Store);

storeName.push(value); // Should give me STORE_A.push(value); STORE_B.push(value);...

以下是我的问题https://codepen.io/BastienAustin/pen/bBQQQz

的代码

您可以通过在第35行附近取消评论来查看所需的输出。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您想要做的是以下内容:

STORE_A放到STORE_F对象中:

var Stores = {
  STORE_A: [],
  STORE_B: [],
  STORE_C: [],
  STORE_D: [],
  STORE_E: [],
  STORE_F: []
}

然后你可以使用:

来引用它们
Stores["STORE_"+json[i].Store].push(value);

另一种方法是创建一个空对象:

var Stores = {};

在你的循环中你可以写:

Stores["STORE_"+json[i].Store] = Stores["STORE_"+json[i].Store] || [];
Stores["STORE_"+json[i].Store].push(value);

如果value = value || []构造的值不是假的,value构造将保留[]的内容,如果它是假的,则会将其设置为Stores[json[i].Store] = Stores[json[i].Store] || []; Stores[json[i].Store].push(value);

为了减少我写的名字的冗余:

Stores.A

然后您可以稍后使用Stores.Bclass A(object): def __init__(self,x,y): self.x = x self.y = y ,...

访问它