gpt4 book ai didi

javascript - 将对象与 json 中的对象进行比较,如果相同则返回

转载 作者:行者123 更新时间:2023-12-01 08:29:37 25 4
gpt4 key购买 nike

我想将填写表单返回的结果与 json 返回的属性进行比较。

我不知道如何解决这个问题。

这是我到目前为止所拥有的:

$('#btn').on('click', function() {
let $inputs = $('#new_form :input');
let new_vals = {};
$inputs.each(function() {
new_form[this.id] = $(this).val();
});

console.log(new_vals);
$.getJSON(api, function(data) {
data.forEach(d => {
console.log(d.values);
});
});
});

我的 new_vals 的 console.log():{start_date: "2019-12-25", end_date: "2020-04-15"}

我的 console.log() for d.values:

{start_date: "2020-01-01", end_date: "2020-03-15"}
{start_date: "2020-01-01", end_date: "2020-03-15"}
{start_date: "2019-12-25", end_date: "2020-04-15"}
{start_date: "2020-03-20", end_date: "2020-03-31"}
{start_date: "2019-10-01", end_date: "2020-03-31"}
{start_date: "2019-10-01", end_date: "2020-03-31"}
{start_date: "2020-01-01", end_date: "2020-01-31"}
{start_date: "2020-01-19", end_date: "2020-01-25"}

我想将 start_date end_dated.values 中的属性进行比较,并希望返回那些匹配的。

我希望从上面的比较中返回第三个值 ({start_date: "2019-12-25", end_date: "2020-04-15"})。

我该怎么做?

最佳答案

您只需检查 getJSON 中的两个值即可。

 $.getJSON(api, function (data) {
data.forEach((d) => {
if(d.values["start_date"] === new_vals["start_date"] && d.values["end_date"] === new_vals["end_date"]) {
console.log(d.values);
}
});
});

另一种方法:

isEqualObj = (obj1, obj2) => {
if(Object.keys(obj1).length !== Object.keys(obj2).length) return false;
for(key of Object.keys(obj1)) {
if(obj1[key] !== obj2[key]) return false;
}
return true;
}
$.getJSON(api, function (data) {
data.forEach((d) => {
if(isEqualObj(d.values, new_vals)) {
console.log(d.values);
}
});
});

关于javascript - 将对象与 json 中的对象进行比较,如果相同则返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61936471/

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