javascript - Javascript 中两个数组的连接

标签 javascript arrays

我需要连接两个数组,从服务器获取下一个 json。一个名为“data”的数组,有 2 个对象,另一个数组名为“Doc”,由 4 个对象组成。

I want to create a matrix that contains 8 elements equal to the following (I did it by hand):

[
    {
        "idlibrosiva": 1,
        "iddoc": 1,
        "false": 1
    },{
        "idlibrosiva": 1,
        "iddoc": 2,
        "false": 1
    },{
        "idlibrosiva": 1,
        "iddoc": 3,
        "false": 1
    },{
        "idlibrosiva": 1,
        "iddoc": 4,
        "false": 1
    },{
        "idlibrosiva": 2,
        "iddoc": 1,
        "false": 1
    },{
        "idlibrosiva": 2,
        "iddoc": 2,
        "false": 1
    },{
        "idlibrosiva": 2,
        "iddoc": 3,
        "false": 1
    },{
        "idlibrosiva": 1,
        "iddoc": 4,
        "false": 1
    }]

这是我从服务器获取的 json 内容

    {
"status": "success",
"code": 200,
"data": [
    {
        "idlibrosiva": 1,
        "nombre": "Compras",
        "descripcion": "Art.-141 C.T.",
        "estado": 1
    },
    {
        "idlibrosiva": 2,
        "nombre": "Contribuyentes",
        "descripcion": "Artículo 141. C.T.- ",
        "estado": 1
    },

],
"Doc": [
    {
        "**iddoc**": 1,
        "documento": "CREDITO FISCAL",
        "descripcion": "ART. 107 C.C.",
        "estado": 1
    },
    {
        "iddoc": 2,
        "documento": "NOTA DE CREDITO",
        "descripcion": "ART. 110 C.C- ",
        "estado": 1
    },
    {
        "iddoc": 3,
        "documento": "FACTURA",
        "descripcion": "ART. 107 C.C.",
        "estado": 1
    },
    {
        "iddoc": 4,
        "documento": "NOTA DE DEBITO",
        "descripcion": "ART. 110 C.C.-",
        "estado": 1
    },
       ],
"mensaje": "Todo se ha cargado correctamente"}

我尝试这样做:

this.Info = response.data;
                this.liva = response.data.filter((item) => item.estado == 1);
                this.docs = response.Doc.filter((item) => item.estado == 1);
                this.DocYlib = this.liva.map((item)=>{
                    const DocumentoUtilizado = new ModeloDocUtilizadosIVA();
                    DocumentoUtilizado.Libro = item.idlibrosiva;
                    DocumentoUtilizado.estado = false;
                    DocumentoUtilizado.documento = this.docs.map((item) => item.iddoc);
                    return DocumentoUtilizado;
                })

但结果是:

enter image description here

最佳答案

您可以使用reducemapconcat

var output = obj.Doc.reduce( (acc, c) => 
     acc.concat( obj.data.map( s => 
      ({ idlibrosiva : s.idlibrosiva, iddoc : c.iddoc, "false": 1 })  //return new object from map callback
     ) //concat statement ended
) , []) //initialize accumulator to []

演示

var obj = {
  "status": "success",
  "code": 200,
  "data": [{
      "idlibrosiva": 1,
      "nombre": "Compras",
      "descripcion": "Art.-141 C.T.",
      "estado": 1
    },
    {
      "idlibrosiva": 2,
      "nombre": "Contribuyentes",
      "descripcion": "Artículo 141. C.T.- ",
      "estado": 1
    },

  ],
  "Doc": [{
      "iddoc": 1,
      "documento": "CREDITO FISCAL",
      "descripcion": "ART. 107 C.C.",
      "estado": 1
    },
    {
      "iddoc": 2,
      "documento": "NOTA DE CREDITO",
      "descripcion": "ART. 110 C.C- ",
      "estado": 1
    },
    {
      "iddoc": 3,
      "documento": "FACTURA",
      "descripcion": "ART. 107 C.C.",
      "estado": 1
    },
    {
      "iddoc": 4,
      "documento": "NOTA DE DEBITO",
      "descripcion": "ART. 110 C.C.-",
      "estado": 1
    },
  ],
  "mensaje": "Todo se ha cargado correctamente"
};

var output = obj.Doc.reduce((acc, c) =>
  acc.concat(obj.data.map(s =>
      ({
        idlibrosiva: s.idlibrosiva,
        iddoc: c.iddoc,
        "false": 1
      }) //return new object from map callback
    ) //concat statement ended
  ), []) //initialize accumulator to []

console.log(output);

关于javascript - Javascript 中两个数组的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49588042/

相关文章:

javascript - 在 mongodb 中的另一个查询中使用上一个查询的结果

arrays - Powershell:比较数组中的多个值

javascript - 如何在数组 javascript 中添加带有 id 的新 key ?

c# - 如何在 C# 中的另一个数组内部的结构内部的数组中查找变量的索引

javascript - 为 for 循环添加时间延迟

javascript - 如何在 wordpress 前端使用 ajax 保存帖子和自定义字段值?

java - 遍历两个数组以检查是否相等

c++ - 解压缩中如何处理数组分配?

javascript - 未定义不是对象 - Angular $rootScope.user.userMessage

javascript - JS RegEx 找不到表达式