javascript - 查找两个单独的 JavaScript 对象之间的重复值?

标签 javascript jquery json

我有两个 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/

相关文章:

javascript - Vuejs - 未捕获的类型错误 : Cannot redefine property: $router

javascript - Firebase 函数通过 appVersion 或 session_start 触发 Analytics?

php - 从 javascript 添加标签

python - 提取 JSON 元素

javascript - FullCalenday 单击日期更改为该特定日期的议程 View

javascript - 为什么我的外部 javascript 方法说它未定义?

javascript - 如何在具有相同类的多个文本框上将 readonly 属性设置为 false?

javascript - 返回数据表输入字段

json - 我将如何使用 SwiftyJSON 解析这种类型的 JSON?

javascript - 具有多个数组的 JSON 对象