从过滤的对象数组中获取价值

时间:2019-06-12 16:52:44

标签: javascript vue.js

我有一个对象数组,每个对象都包含一个name属性和一个value属性

enter image description here

我要做的是返回指定名称的值

我正在使用计算所得的属性

computed: {
    statAlertCount() {
      var stat = this.siteStatistics.filter(item => {
        console.log(item);
        return item.name == "site_alert_count";
      });
      console.log(stat[0]);
    }
  }

此代码返回和我可以安慰的对象“ stat”。看起来像这样。

enter image description here

但是如果我尝试使用stat [0] .stat访问值,则会收到以下错误消息

app.js?id=f37d3d495892e39c6054:85474 [Vue warn]: Error in render: "TypeError: Cannot read property 'stat' of undefined"

2 个答案:

答案 0 :(得分:5)

我认为您只需要返回:

computed: {
  statAlertCount() {
    var stat = this.siteStatistics.filter(item => item.name === "site_alert_count");

    return stat.length > 0 ? stat[0].stat : '';
  }
}

答案 1 :(得分:0)

使用find的替代解决方案:

computed: {
  statAlertCount() {
    const statItem = this.siteStatistics.find(item => item.name == "site_alert_count");
    return statItem ? statItem.stat : "";
  }
}