PankovAlxndr
@PankovAlxndr
Fullstack web developer

Почему не работает поиск по массиву из объектов?

Здравствуйте, на vue 3 (nuxt) строю объект, возникли проблемы.
Прикладываю код, конкретно не работает .. useFindIndex.. это функция lodash
у меня всегда прилетает -1, почему?
тыкал console.log объект наполняется, все вроде бы хорошо (там правда Proxy объекты везде)
const generateTable = async () => {
  tbody.value = {};
  thead.value = [];

  for (const item of items.value) {
    const indx = item.product.article + '-' + item.size;
    if (tbody.value[indx] === undefined) {
      tbody.value[indx] = {
        product: item.product,
        size: item.size,
        whs: [],
      }
    }


    // console.log(tbody.value[indx].whs, {'id': item.warehouse.id})
    const stockIndx = useFindIndex(tbody.value[indx].whs, {'id': item.warehouse.id})
    console.log(stockIndx)
    if (stockIndx >= 0) {
      // не заходит сюда
    } else {
      tbody.value[indx].whs.push(item.warehouse);
    }
  }
}
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Во-первых: вопрос не относится к vue, он о чистом js.
Во-вторых: код рабочий, просто у вас, судя по всему, отсутствуют такие item, где одновременно были бы равны item.product.article, item.size и item.warehouse.id, т.к. только в таком случае ветка уйдёт в нужную вам сторону. Если логика предполагалась какой-то другой - уточняйте.
Во-третьих: используйте, по возможности, для отдельно стоящих объектов reactive вместо ref, код чище и приятней будет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы