169 похожих чатов

Сейчас в fill = [ { "id": 35, "value": "text" } ] есть объект { "id": 35, "value": "нек" } но

у него другой value

и при setFill
передав новый объект...можно найти этот айди в fill и перезаписать value/?

27 ответов

14 просмотров
Tarsus- Автор вопроса

сначала было setFill(prevFill => [{"id": 35, "value":"tete"}, ...prevFill]) но так конечно не найти

map | reduce

Tarsus- Автор вопроса

я не понимаю есть такие методы, а реализация?

опиши нормально задачу, а то я не понял что надо тебе получить в итоге

Tarsus- Автор вопроса

const [fill, setFill] = useState([]) записываем туда в fill объекты setFill(prevFill => [{"id": 35, "value":"tete"}, ...prevFill]) в итоге айди дублируется с value нужно, чтобы не дублировался id и значение value у этого id перезаписывалось

юзай Set

на обьектах так не работает

ну без большего контекста могу предложить искать есть ли такой обьект, и если есть, то менять его, а если нету то добавлять

да, я написал а потом только вспомнил

Tarsus- Автор вопроса

можно подробнее плиз? я хз как это реализовать) с меня магарыч деревянными

const isExists = fill.some(({id}) => id === 35) if(isExists) { setFill(prev => prev.map(updateById)) return; } setFill(prev => [...prev, newObj])

можно в гугле почитать “js array unique” как минимум три варианта есть - проверять перед вставкой - фильтровать после вставки - перегонять в сет и обратно самый быстрый - первый

Tarsus- Автор вопроса

спасибо большое, Назар - отпишусь о результате)

Tarsus- Автор вопроса

Назар, а что за updateById?

Функция котороя обновляет обновляет только нужного юзера

Реализация на ваше усмотрение

А почему не в мап проверку на id делать?

Нам интересен порядок насколько я понял

Tarsus- Автор вопроса

function add(item) { const isExists = fillInput.some((el) => el.index === item.index) if (isExists) { console.log(isExists) setFillInput(prev => prev.map(el => el.value = item.value)) console.log(fillInput) return; } setFillInput(prev => [...prev, item]) }

Учите js сначала...

Tarsus- Автор вопроса

а вы можете объяснить ? я не против деревянными отблагодарить ну

Тут не el и item index, a id; в prev.map функцию кинуть, которая проверяет, что если id элемента равен id у item, то вернуть обновленный результат, иначе вернуть исходных элемент. Ну и в данном случае я б сделал через обычный if else для isExists - можно и через тернарник

else ненадо, тернарник плохой тон имхо

Если вынести в функции добавление и обновление, то нормально будет: setFill( prev => isExists ? updateItem(prev) : addItem(prev)). Можно и в объект... Ну да ладно)

Ну тут уже поинтереснее

console.log(fillInput) покажет неактуально значение, смотрите в рендере

Tarsus- Автор вопроса

спасибо вам большое) я пока туплю. 4ый месяц работы над проектом и уже крыша едет

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта