【问题标题】:Check if string is in an array of objects VueJS?检查字符串是否在对象数组VueJS中?
【发布时间】:2020-04-20 18:26:40
【问题描述】:

我有一个文本字段,用户可以在其中输入值,然后按钮的on click 将值推送到数组中。我要测试的值是uniqueID。因此,假设用户输入了多个值,包括逗号或空格,其中一个与现有数组中的 uniqueId 匹配。然后我收到警报。

我尝试使用some,但效果不佳。不知道我做错了什么。

这是一个示例pen

new Vue({
  el: "#app",
  data() {
    return {
      myArray: [{
          title: "Sam",
          age: 36,
          uniqueId: "GHTR435"
        },
        {
          title: "Max",
          age: 44,
          uniqueId: "MLKT432"
        }
      ],
      inputField: "",
      inputArray: []
    };
  },
  methods: {
    createArray() {
      if (this.myArray.some((el) => el.uniqueID === this.inputField)) {
        alert("Heyy!!!!");
      } else {
        this.inputArray.push(this.inputField.trim().replace(/, +/g, ","));
        console.log(this.inputArray);
      }
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.5.14/dist/vuetify.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/vuetify@1.5.14/dist/vuetify.min.css" rel="stylesheet" />

<div id="app">
  <v-app id="inspire">
    <v-container>
      <v-layout justify-center>
        <v-flex xs6>
          <v-text-field solo v-model="inputField"></v-text-field>
          <v-btn @click="createArray">Click Me</v-btn>
        </v-flex>
      </v-layout>
    </v-container>
  </v-app>
</div>

任何帮助将不胜感激。谢谢你。

【问题讨论】:

  • if (this.myArray.some((el) => this.inputField.split(/[, ]/g).includes(el.uniqueID))

标签: javascript arrays vue.js


【解决方案1】:
if (this.myArray.some((el) => this.inputField.split(/[, ]/g).includes(el.uniqueID)) 

【讨论】:

    【解决方案2】:

    您的状况有误。应该是

    this.myArray.some((el) => el.uniqueId /* <-- "d" instead of "D" */ === this.inputField)
    

    【讨论】:

    • 但如果我输入 GHTR435、TGFHD322 之类的内容。它仍然有效,因为这些是多个值,有些似乎只适用于一个值。
    猜你喜欢
    • 2019-07-06
    • 2020-07-27
    • 1970-01-01
    • 2023-03-09
    • 2017-03-17
    • 1970-01-01
    • 2020-04-26
    • 2014-09-10
    • 2014-07-27
    相关资源
    最近更新 更多