通过Vue / Node.js中的include()检查元素是否在数组中

时间:2019-01-21 10:29:12

标签: javascript node.js vue.js

我想检查我的条形码字符串是否在现有的条形码阵列中。 我发现Javascript中有一个名为include()的函数。

所以我尝试了以下操作:

data() {
return {
  form: {
    items: [ //this is the array what I want to check
    ],
    //...
  },
}

那很好。 但是我的版本:

.then(response => {
      barcode = response.data;
      if (barcode.length > 0)
        if(!this.form.items.includes(barcode)) //THIS DON'T WORK
          this.form.items.push(barcode[0]);
      else
        this.$message({
        message: 'Wrong Barcode!',
        type: 'warning'
      }) 
  })

在我的一项功能中,我有以下片段:

{{1}}

该数组为空,因为每次使用扫描仪时我都会向其中推送元素。

2 个答案:

答案 0 :(得分:2)

我假设您的条形码是数组,而item是条形码的数组。 试试这个

if (barcode.length > 0)
    if(!this.form.items.includes(barcode[0]))
      this.form.items.push(barcode[0]);

答案 1 :(得分:0)

据我所知,条形码是一个数组,您只想推送尚未收集的元素(避免重复)。

if (barcode.length > 0) {
  barcode.forEach(item => {
    if(!this.form.items.some(el => el === item)) {
      this.form.items.push(item);
    }
  })
}