Javascript 比较两个Java脚本对象以找出差异
我对java脚本有一定的了解,我正在尝试比较两个java脚本对象以找出差异。下面是我在函数中使用的代码,没有得到期望的输出Javascript 比较两个Java脚本对象以找出差异,javascript,arrays,json,Javascript,Arrays,Json,我对java脚本有一定的了解,我正在尝试比较两个java脚本对象以找出差异。下面是我在函数中使用的代码,没有得到期望的输出 function compoare() { var Json1 = [ { name: "ABC", value: "5" }, { name: "DEF", value: "85712264" }, ]; var Json2 = [ { name: "DEF", value: "85712264" }, { name: "ABC
function compoare() {
var Json1 = [
{ name: "ABC", value: "5" },
{ name: "DEF", value: "85712264" },
];
var Json2 = [
{ name: "DEF", value: "85712264" },
{ name: "ABC", value: "3" },
];
var obj1Keys = Object.keys(Json1);
var obj1Values = Object.values(Json1);
var obj2Keys = Object.keys(Json2);
var obj2Values = Object.values(Json2);
console.log(obj1Keys);
console.log(obj1Values);
for (let i = 0; i < obj1Keys.length; i++) {
for (let j = 0; j < obj2Keys.length; j++) {
if (obj1Keys[i] === obj2Keys[j]) {
if (obj1Values[i] !== obj2Values[j]) {
console.log(obj1Keys[i]);
console.log(obj1Values[i]);
}
}
}
}
}
函数compare(){
var Json1=[
{名称:“ABC”,值:“5”},
{名称:“DEF”,值:“85712264”},
];
var Json2=[
{名称:“DEF”,值:“85712264”},
{名称:“ABC”,值:“3”},
];
var obj1Keys=Object.keys(Json1);
var obj1Values=对象值(Json1);
var obj2Keys=Object.keys(Json2);
var obj2Values=Object.values(Json2);
控制台日志(obj1键);
控制台日志(OBJ10值);
for(设i=0;i
我想比较Json1中的“name”和“value”,并签入Json2。如果找到匹配的“名称”,则比较相应“名称”的“值”。如果“值”存在差异,则从Json1打印“名称”和“值”对
预计O/p为:ABC,5
提前谢谢 这是工作吗
var Json1=[{“name”:“ABC”,“value”:“5”},{“name”:“DEF”,“value”:“85712264”}];
var Json2=[{“name”:“DEF”,“value”:“85712264”},{“name”:“ABC”,“value”:“3”}];
for(设i=0;i
这是工作吗
var Json1=[{“name”:“ABC”,“value”:“5”},{“name”:“DEF”,“value”:“85712264”}];
var Json2=[{“name”:“DEF”,“value”:“85712264”},{“name”:“ABC”,“value”:“3”}];
for(设i=0;i
您可以使用方法来比较两个对象的属性和值,下面是一个实现方法,请注意我在第一个循环中使用的方法
var Json1=[
{名称:“ABC”,值:“5”},
{名称:“DEF”,值:“85712264”},
];
var Json2=[
{名称:“DEF”,值:“85712264”},
{名称:“ABC”,值:“3”},
];
var obj1Keys=Object.keys(Json1);
var obj1Values=对象值(Json1);
var obj2Keys=Object.keys(Json2);
var obj2Values=Object.values(Json2);
Json1.forEach(({name,value})=>{
Json2.forEach((elem)=>{
if(name==elem.name&&value!==elem.value){
console.log(名称、值);
}
})
});代码>您可以使用方法来比较两个对象的属性和值,下面是一个如何实现这一点的方法,还要注意我在第一个循环中使用的方法
var Json1=[
{名称:“ABC”,值:“5”},
{名称:“DEF”,值:“85712264”},
];
var Json2=[
{名称:“DEF”,值:“85712264”},
{名称:“ABC”,值:“3”},
];
var obj1Keys=Object.keys(Json1);
var obj1Values=对象值(Json1);
var obj2Keys=Object.keys(Json2);
var obj2Values=Object.values(Json2);
Json1.forEach(({name,value})=>{
Json2.forEach((elem)=>{
if(name==elem.name&&value!==elem.value){
console.log(名称、值);
}
})
});代码>这方面的细微变化可能如下:
var Json1 = [
{ name: "ABC", value: "5" },
{ name: "DEF", value: "85712264" },
];
var Json2 = [
{ name: "DEF", value: "85712264" },
{ name: "ABC", value: "3" },
];
var map = new Map();
Object.keys(Json1).forEach(k => map.set(Json1[k].name, Json1[k].value));
Object.keys(Json2).forEach(k => {
if(map.has(Json2[k].name) && map.get(Json2[k].name) !== Json2[k].value)
console.log(Json2[k].name, map.get(Json2[k].name));
});
这方面的细微变化可能如下所示:
var Json1 = [
{ name: "ABC", value: "5" },
{ name: "DEF", value: "85712264" },
];
var Json2 = [
{ name: "DEF", value: "85712264" },
{ name: "ABC", value: "3" },
];
var map = new Map();
Object.keys(Json1).forEach(k => map.set(Json1[k].name, Json1[k].value));
Object.keys(Json2).forEach(k => {
if(map.has(Json2[k].name) && map.get(Json2[k].name) !== Json2[k].value)
console.log(Json2[k].name, map.get(Json2[k].name));
});
非常感谢。它按照我的预期工作,允许我在函数中添加更多代码。真的很感激谢谢你!!它按照我的预期工作,允许我在函数中添加更多代码。真的很感激