Узнайте, как добавить элемент в массив, если он не существует JavaScript/Vue.js/ES6.

В этом примере есть массив объектов.

items: [
  { id: 1, text: "Item 1" },
  { id: 2, text: "Item 2" },
  { id: 3, text: "Item 3" }
]

Наша задача — добавить новый элемент «Item 4» с id 4 в массив элементов.

Vue.js

new Vue({
  el: "#app",
  data: {
    items: [
      { id: 1, text: "Item 1" },
      { id: 2, text: "Item 2" },
      { id: 3, text: "Item 3" }
    ],
    exists: null
  },
  methods: {
    addItem () {
      this.checkIfExists(4)
      if (!this.exists) {
      	this.items.push({'id': 4, 'text': 'Item 4' })
      }
    },
    checkIfExists(itemId) {
      this.exists = this.items.some((item) => {
      	return item.id === itemId
      })
    }
  }
})

HTML

<div id="app">
  <h2>Add item to array:></h2>
  <ul v-if="items.length > 0">
    <li v-for="item in items" :key="item.id">{{ item.text }}</li>
  </ul>
  <p><a href="#" @click.prevent="addItem()">Add new item</a></p>
</div>

Есть кнопка «Добавить новый элемент», которая связана с методом addItem(). Этот метод сначала вызывает метод checkIfExists(), чтобы узнать, содержит ли уже массив элементов элемент с id = 4.

Если он не существует, метод addItem() продолжает добавлять новый элемент в массив.

Я давно придумал это решение, оно не элегантное. Если вы знаете более короткий и понятный способ добавить элемент в массив и проверить, не содержит ли он уже этот элемент — сообщите мне.

Если вы найдете этот пост полезным, пожалуйста, дайте мне знать в комментариях ниже.
Ура,
Ренат Галямов

Хотите поделиться этим с друзьями?
👉 renatello.com/vue-js-add-to-array

PS: Обязательно ознакомьтесь с другими учебниками по JavaScript, например. как создать массив чисел в JavaScript или сгенерировать массив лет в JavaScript.

Первоначально опубликовано на https://renatello.com (Добавить элемент в массив, если он не существует в Vue.js/ES6) 4 августа 2019 г.