【发布时间】:2020-09-08 04:46:50
【问题描述】:
我想将填写表单返回的结果与从 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"}
d.values 的我的 console.log():
{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_date 与d.values 中的属性进行比较,并希望返回匹配的属性。
我希望从上面的比较中返回第三个值 ({start_date: "2019-12-25", end_date: "2020-04-15"})。
我该怎么做?
【问题讨论】:
-
请试试这个 d.values.filter(ob => ob.start_date === new_vals.start_date && ob.end_date === new_vals.end_date);
-
这个问题没有 JSON。只有对象和对象数组。 JSON 是一种文本格式,例如 CSV。
-
@HereticMonkey,不是真的,上面的d.values来自forEach
-
我想比较 getJSON 中的值,如果它们匹配,我想拉出一个具有相似值的模式,如果不做其他事情
标签: javascript jquery json object ecmascript-6