如何在for中构建JavaScript 2D数组

时间:2019-07-04 13:03:47

标签: javascript arrays

我在这里搜索过,但我找不到解决方案,我想我只是缺少一些语法。

var DataSend = [];
for ( $i=0; $i < $MovimentosLength; $i++) {
    DataSend = [
        $i =[
            'CodProduto', CacheQL.Movimentos.CodProduto[$i],
            'ProdutoDesignacao', CacheQL.Movimentos.ProdutoDesignacao[$i],
            'Valor', CacheQL.Movimentos.Valor[$i],
            'Percentagem', CacheQL.Movimentos.Percentagem[$i]
        ],
    ]

}//#FOR

这可能吗?我知道如何在PHP中执行此操作,但在JS中我并不真正了解语法。

谢谢

3 个答案:

答案 0 :(得分:2)

您快到了!就是说,使用javascript并没有将数组推入数组的捷径。您必须使用push()

在您的示例中,它看起来也不是一个2D数组,而是一个对象数组。像这样:

const DataSend = [];
for (let i=0; i < MovimentosLength; i++)
{
    DataSend.push({
                CodProduto: CacheQL.Movimentos.CodProduto[i],
                ProdutoDesignacao: CacheQL.Movimentos.ProdutoDesignacao[i],
                Valor: CacheQL.Movimentos.Valor[i],
                Percentagem: CacheQL.Movimentos.Percentagem[i]
            });
}

这有意义吗?

答案 1 :(得分:0)

实际上,这非常相似,尽管我不知道您所使用的源CacheQL.Movimentos是什么。数组吗?

初始化一个新数组

var DataSend=[];

在对象上循环

for(var a=0;a<CacheQL.Movimentos.length;a++)
{
}

在for循环内将一个新数组推入现有数组

DataSend.push(['CodProduto', CacheQL.Movimentos.CodProduto[a],
                    'ProdutoDesignacao', CacheQL.Movimentos.ProdutoDesignacao[a],
                    'Valor', CacheQL.Movimentos.Valor[a],
                    'Percentagem', CacheQL.Movimentos.Percentagem[a]);

答案 2 :(得分:0)

只需将push与有效的对象文字一起使用:

for (let i = 0; i < MovimentosLength; i++) {
  DataSend.push({
    CodProduto: CacheQL.Movimentos.CodProduto[i],
    ProdutoDesignaco: CacheQL.Movimentos.ProdutoDesignaco[i],
    Valor: CacheQL.Movimentos.Valor[i],
    Percentagem: CacheQL.Movimentos.Percentagem[i]
  });
}

或者如果您想要一个数组:

for (let i = 0; i < MovimentosLength; i++) {
  DataSend.push([
    "CodProduto", CacheQL.Movimentos.CodProduto[i],
    "ProdutoDesignaco", CacheQL.Movimentos.ProdutoDesignaco[i],
    "Valor", CacheQL.Movimentos.Valor[i],
    "Percentagem", CacheQL.Movimentos.Percentagem[i]
  ]);
}