我需要连接两个数组,从服务器获取下一个 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;
})
但结果是:
最佳答案
您可以使用reduce
、map
和concat
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/