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

  • 18 августа 2023 г. 10:26
Ответы на вопрос 2
Проблема в том, что вы используете неправильный синтаксис для функции `useFindIndex`. Вместо использования `useFindIndex`, вам нужно использовать `findIndex`. 

Исправьте следующую строку кода:
```javascript
const stockIndx = useFindIndex(tbody.value[indx].whs, {'id': item.warehouse.id});
```
на:
```javascript
const stockIndx = tbody.value[indx].whs.findIndex(wh => wh.id === item.warehouse.id);
```
Этот код будет искать объект в массиве `tbody.value[indx].whs`, у которого свойство `id` соответствует `item.warehouse.id`. Он возвращает индекс объекта, если он найден, и `-1`, если объект не найден.

После внесения этого изменения код должен работать как ожидается.
Официальная документация предлагает воспользоваться поиском в Google для получения информации из официальной документации.

Во-первых: этот вопрос не связан с Vue, а касается чистого JavaScript.

Во-вторых: ваш код работает, но скорее всего у вас отсутствуют объекты, где значения item.product.article, item.size и item.warehouse.id одновременно совпадают. Ветка выполнения пойдет только в том случае, если все эти значения равны. Если у вас была какая-то другая логика, уточните ее.

В-третьих: если возможно, используйте reactive вместо ref для отдельностоящих объектов. Это сделает ваш код более чистым и приятным.
Похожие вопросы