Vuejs 如何通过 forEach 循环使用计算属性

Pat*_*han 5 vue.js vuejs2

我的用例是这样的,

  1. 我循环遍历对象数组来填充下拉菜单。
  2. 如果我对下拉列表进行 v-model,我只能获取对象 ID 或名称。但我可以同时获取 id 和 name。
  3. 所以我需要计算属性来查找所选对象的 id。

这是我的 v-select

<v-select
    label="Select an item"
    :items="items"
    item-text="name"
    v-model="item_name">
/>
Run Code Online (Sandbox Code Playgroud)

这是我的计算属性

computed: {
  id() {
    this.items.forEach(element => {
      if (element.name == this.item_name) {
        return (this.item = element.id);
      }
    });
  }  
}
Run Code Online (Sandbox Code Playgroud)

我的计算属性出了什么问题,我希望 {{item}} 打印所选项目的 id,但事实并非如此。

apr*_*ja1 2

您可能想find()改用

computed: {
        id() {
          return this.items.find(element => {
            return element.name == this.item.name
          }).id;
        }

  }
Run Code Online (Sandbox Code Playgroud)

这将首先找到Array中与函数中的条件匹配的元素,然后找到该元素的id