我有两个 javascript 对象数组:
var fullDateRange=[{date:"4/1/18",value:0},{date:"4/2/18",value:0},{date:"4/3/18",value:0},{date:"4/4/18",value:0},{date:"4/5/18",value:0}]
和
var actualDateRange=[{date:"4/1/18",value:1},{date:"4/3/18",value:3},{date:"4/5/18",value:5}]
我正在尝试循环访问 fullDateRange 数组,查看是否存在任何实际的DateRange 日期,然后递增该值。但我不断收到重复的代码:
function outputDeltaDates(fullDateObj, responseObj) {
var dateArr = [],
valueArr = [];
$.each(fullDateObj, function(index) {
var fullDate = this;
var counter = 0
$.each(responseObj, function(index) {
var fullResponse = this;
if (fullResponse['date'] == fullDate['date']) {
valueArr.push(fullResponse['value'])
dateArr.push(fullDate['date'])
} else {
if (!dateArr.includes(fullDate['date'])) {
valueArr.push(0)
dateArr.push(fullDate['date'])
}
}
})
})
return [valueArr, dateArr]
}
最佳答案
如果日期存在于另一个数组中,则要增加对象值属性,只需循环一次,如果在 actualDateRange
中找到日期,则增加值
var fullDateRange=[{date:"4/1/18",value:0},{date:"4/2/18",value:0},{date:"4/3/18",value:0},{date:"4/4/18",value:0},{date:"4/5/18",value:0}]
var actualDateRange=[{date:"4/1/18",value:1},{date:"4/3/18",value:3},{date:"4/5/18",value:5}]
fullDateRange.forEach(e => {
let act = actualDateRange.find(a => a.date === e.date);
if (act) e.value += act.value;
})
console.log(fullDateRange);
关于javascript - 查找两个单独的 JavaScript 对象之间的重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949117/