我对java脚本有一定的了解,我正在尝试比较两个java脚本对象,以找出它们之间的区别。下面是我在函数中使用的代码,没有得到所需的输出。
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]);
}
}
}
}
}我想比较一下Json1中的'name‘和'value’,并签入Json2。如果找到匹配的“名称”,则将“值”与相应的“名称”进行比较。如果“值”有差异,则从Json1中打印“name”和“value”对。
预期O/P为: ABC,5
提前谢谢!!
发布于 2020-05-27 02:17:36
您可以使用.forEach()方法来比较这两个对象的属性和值,下面是如何实现这一点的方法,还可以注意我在第一个循环中使用的对象析构函数赋值
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);
Json1.forEach(({name, value}) => {
Json2.forEach((elem) => {
if( name === elem.name && value !== elem.value) {
console.log(name, value);
}
})
});
发布于 2020-05-27 02:01:26
这是工作吗?
var Json1 = [{ "name": "ABC", "value": "5" }, { "name": "DEF", "value": "85712264" }];
var Json2 = [{ "name": "DEF", "value": "85712264" }, { "name": "ABC", "value": "3" }];
for (let i = 0; i < Json1.length; i++) {
const { name, value } = Json1[i];
for (let j = 0; j < Json2.length; j++) {
const json2 = Json2[j];
if (name === json2.name ) {
console.log(name, value);
}
}
}发布于 2020-05-27 02:29:23
这方面可能略有变化,具体如下:
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));
});https://stackoverflow.com/questions/62034192
复制相似问题