Использование массива для обновления хранимого массива в javascript - PullRequest
0 голосов
/ 25 марта 2020

Итак, у меня есть массив хранимых продуктов.

[
  {
    sku: "RED",
    _id: "123"
  },
  {
    sku: "BLUE",
    _id: "abc"
  }
]

У меня также есть дублированный массив во внешнем интерфейсе, который позволяет пользователю редактировать. Когда пользователь редактирует этот массив, он будет определять, будут ли удалены или добавлены объекты в сохраненном массиве. Самым простым решением было бы заменить сохраненный массив на внешний интерфейс, однако сохраненный массив также содержит другие данные, которые я не хочу потерять, если они не были отредактированы напрямую.

Так, например, если я было удалить { sku: "BLUE", _id: "abc" } из внешнего массива, я хотел бы l oop через массив 'сохраненных' и удалить объект, который содержит объект голубого неба.

Если пользователь должен был создать новый объект, такой как объект Green sku:

[
  {
    sku: "RED",
    _id: "123"
  },
  {
    sku: "BLUE",
    _id: "abc"
  },
  {
    sku: "GREEN",
    _id: "jhg"
  }
]

Объект Green Sku будет применен к уже сохраненному массиву.

Поскольку сохраненный массив хранится в БД, я бы использовать javascript обещаний (ожидайте deleteProduct (_id) или ожидайте createProduct (_id))

Каков наилучший способ добиться этого с помощью es6 javascript.

1 Ответ

0 голосов
/ 25 марта 2020

Полу завершено - извините, но может помочь?

Возьмем оба массива, скажем -

let frontEnd = [
  {
    sku: "RED",
    _id: "123"
  },
  {
    sku: "BLUE",
    _id: "abc"
  }
]

let backEnd = [
  {
    sku: "RED",
    _id: "123"
  },
  {
    sku: "BLUE",
    _id: "abc"
  },
  {
    sku: "GREEN",
    _id: "jhg"
  }
]

Затем с помощью oportator spead скомбинируем оба - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

let combined = [...frontEnd, ...backEnd]

, затем итерируем через этот массив, чтобы удалить все дубликаты, которые вы могли найти, а затем сохранить комбинированную версию?

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