VueJS - Как проверить массив на совпадение значений? - PullRequest
1 голос
/ 19 февраля 2020

Я работаю над приложением couponcode VueJS, в котором я хочу проверить массив с различными discountcodes на соответствие значениям. Ниже у меня есть массив с двумя discountcodes. Если кнопка нажата, я хочу проверить массив на наличие совпадений. Я не уверен, что будет лучшим решением для этого ..

<template>
    <div class="container">

        <input placeholder='type discount' v-model="discountInput">
        <button @click="checkDiscount">check for discount</button>

        <span class="alert" v-if="discountValid">
            Code juist
        </span>

        <span class="alert" v-if="discountInvalid">
            Code onjuist
        </span>

    </div>
</template>

<script>

  export default {

    props: {

    },

    data: () => {
        return {
            discountInput: '',
            discountValid: false,
            discountInvalid: false,
            discountCodes: [
                { code: 'discount-code-1', message: '10% discount' },
                { code: 'discount-code-2', message: '5 dollar discount' }
            ]

        }
    },
    components: {

    },
    methods: {

        checkDiscount() {
            if (this.discountInput === this.discountCode) {
                return true;
            } else {
                return false;
            }
        }

    },
    watch: {

    }
}
</script>

Ответы [ 2 ]

3 голосов
/ 19 февраля 2020

A find должно работать.

  checkDiscount() {
    if (this.discountCodes.find(x => x.code === this.discountInput)) {
      return true;
    } else {
      return false;
    }
  }

или, как указано в комментариях, может быть уменьшено до:

  checkDiscount() {
    return !!this.discountCodes.find(x => x.code === this.discountInput);
  }

2 голосов
/ 19 февраля 2020

Попробуйте использовать метод массива some следующим образом:

 checkDiscount() {

            return this.discountCodes.some(dis => dis.code === this.discountInput)

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...