gpt4 book ai didi

javascript - 如何在javascript中比较同一数组中的不同对象

转载 作者:行者123 更新时间:2023-11-30 20:04:00 25 4
gpt4 key购买 nike

我有示例数据。我想比较数组中我没有所有数据的对象。如果对象不包含此给定数据中的特定属性,我在一个对象中缺少 params 属性,在一个对象中缺少 rooms propertx,因此我必须从公共(public)数据中提取这两个属性。

我在这里尝试了什么

var emptyvar = [];

var totalYears = hello.reduce(function (accumulator, pilot) {
if (JSON.stringify(accumulator) != JSON.stringify(pilot)) {
emptyvar.push(pilot)
}
});

但这比较的是整个对象,而不仅仅是键。我怎样才能得到丢失的数据。

[  
{
"coords":{
"lat":"52.5013632",
"lon":"13.4174913"
},
"params":{
"rooms":"5",
"value":"1000000"
},
"street":"Adalbertstraße 13"
},
{
"coords":{
"lat":"52.4888151",
"lon":"13.3147011"
},
"params":{
"value":"1000000"
},
"street":"Brandenburgische Straße 10"
},
{
"coords":{
"lat":"52.5141632",
"lon":"13.3780111"
},
"params":{
"rooms":"3",
"value":"1500000"
},
"street":"Cora-Berliner-Straße 22"
},
{
"coords":{
"lat":"52.5336332",
"lon":"13.4015613"
},
"street":"Fehrbelliner Straße 23"
}
]

最佳答案

有很多 json 模式验证器,其中一个现在流行的是 ajv

你可以找到一个使用你的模式的例子,你可以根据需要哪些属性以及是否可以接受额外的键来调整它

const schema = {
$id: 'home',
properties: {

coords: {
properties: {
lat: { type: 'string' },
lon: { type: 'string' }
},
required: ['lat', 'lon']
},

params: {
properties: {
rooms: { type: 'string' },
value: { type: 'string' }
}
},

street: { type: 'string' }
},

required: ['coords', 'params', 'street'],
additionalProperties: false
};

const ajv = new Ajv({
schemas: [schema]
});

let data = {
coords:{
lat: "52.5013632",
lon:"13.4174913"
},
params:{
rooms:"5",
value:"1000000"
},
street:"Adalbertstraße 13"
};


console.log(ajv.validate(schema, data));

关于javascript - 如何在javascript中比较同一数组中的不同对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53102197/

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