gpt4 book ai didi

javascript - 如何比较或关联 2 getJson?

转载 作者:行者123 更新时间:2023-11-30 15:01:28 25 4
gpt4 key购买 nike

我需要比较这两个 Json 并让 get1 返回所有数据,除了 idConcepto 和 impuesto 与 get2 相同的数据

例子:

get1 = https://maxtechglobal.com/vencimientos/agip/ib.php?cuit=30712413871

"data": [
{
"impuesto": "IVA",
"idConcepto": "30",
"id": "266",
"datos": {
"anticipo": "PRESENTACION",
"vencimiento": "2017-09-18",
"agencia": "AFIP",
"id_perfil": "146"
}
},
{
"impuesto": "GANANCIAS SOCIEDADES",
"idConcepto": "10",
"id": "268",
"datos": {
"anticipo": "PAGO",
"vencimiento": "2017-09-13",
"agencia": "AFIP",
"id_perfil": "146"
}
}
]

get2 = http://estudiomiramonte.com/app/api/impuestos_modal.php?id_perfil=146

 "data": [
{
"impuesto": "IVA",
"idConcepto": "30",
"id": "607",
"datos": {
"anticipo": "PRESENTACION",
"vencimiento": "2017-09-18",
"agencia": "AFIP",
"id_perfil": "187"
}
}
]

Result i need:

"impuesto": "GANANCIAS SOCIEDADES",
"idConcepto": "10",
"id": "268",
"datos": {
"anticipo": "PAGO",
"vencimiento": "2017-09-13",
"agencia": "AFIP",
"id_perfil": "146"

//get1

$.getJSON("https://maxtechglobal.com/vencimientos/agip/ib.php?cuit=" + "cuit", function(result) {
for (var i = 0; i < result.data.length; i++) {
if (result.data[i].id != otheresult.data[i].id) {
var table_abril = document.getElementById("AGIP_edit_todos");
var row = table_abril.insertRow(-1);

var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);

cell1.innerHTML = result.data[i].id;
cell2.innerHTML = result.data[i].impuesto;
cell3.innerHTML = '<input type="checkbox" name="optionsCheckboxes">';
}
}
});

//get2

$.getJSON("api/impuestos_modal.php?id_perfil=" + id + "", function(result) {});

最佳答案

您可以使用 array#filterarray#some 来获取不共享相同 idConceptoimpuesto 的数据

var get1 = {"data": [{"impuesto": "IVA","idConcepto": "30","id": "266","datos": {"anticipo": "PRESENTACION","vencimiento": "2017-09-18","agencia": "AFIP","id_perfil": "146"}},{"impuesto": "GANANCIAS SOCIEDADES","idConcepto": "10","id": "268","datos": {"anticipo": "PAGO","vencimiento": "2017-09-13","agencia": "AFIP","id_perfil": "146"}}]},
get2 = { "data": [{"impuesto": "IVA","idConcepto": "30","id": "607","datos": {"anticipo": "PRESENTACION","vencimiento": "2017-09-18","agencia": "AFIP","id_perfil": "187"}}] };

var result = get1.data.filter(function(o1){
return !get2.data.some(function(o2){
return o1.impuesto === o2.impuesto && o1.idConcepto === o2.idConcepto;
});
});

console.log(result);

由于您的两个数据都是从外部源获取的,因此您可以使用 Promise.all() .获得这两个结果后,您就可以使用上述函数。

实例

var get1 = $.getJSON("https://maxtechglobal.com/vencimientos/agip/ib.php?cuit=" + "30712413871").done();
var get2 = $.getJSON("https://estudiomiramonte.com/app/api/impuestos_modal.php?id_perfil=" + "146").done();

Promise.all([get1, get2]).then(function([obj1, obj2]){
var result = obj1.data.filter(function(o1) {
return !obj2.data.some(function(o2) {
return o1.impuesto === o2.impuesto && o1.id === o2.idConcepto;
});
});

console.log(result);
})
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>

关于javascript - 如何比较或关联 2 getJson?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46474770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com