首页 > 解决方案 > 使用 user_id 的 javascript 对象过滤器不返回预期结果

问题描述

我有以下对象

var total_hours = <?php echo json_encode($total_hours); ?>;



    [
      {"user_id": 2959
       "total_hours": "38"
      }
      {"user_id": 116
       "total_hours": "1"
      }
    ]

我想根据user_id获得total_hours

var user = document.getElementById("user").value;

            var yahooOnly = total_hours.filter(function (entry) {
                return entry.user_id === user;
            });

            total_hours = yahooOnly;

但是嗯无法获得所需的输出。有人可以帮助我吗?

试试这个问题,但没有得到所需的输出!

标签: javascriptphparraysmultidimensional-arrayfilter

解决方案


filter()返回一个数组。您需要对其进行索引,然后访问该total_hours属性。

您可以使用.find()代替.filter()来获取对象而不是数组。

var total_hours = [{
  "user_id": 2959,
  "total_hours": "38"
}, {
  "user_id": 116,
  "total_hours": "1"
}];

var user = 2959;
var yahooOnly = total_hours.find(entry => entry.user_id == user);
var yahoo_hours = yahooOnly.total_hours;
console.log(yahoo_hours)


推荐阅读