"Hi", id:1}, {title: "foo", id:2] и объект newPost = {title: "good", id: 3}. Надо написать максимально короткое решение. Что если в масиве post нету такого id как в newPost. То в post запушить newPost. Кто поможет??
так это в худшем случае 2 строки хд
posts.find(({ id }) => id === newPost.id) ?? posts.push(newPost);
Только лучше через some и через &&
это nullish coercial или как там его. Короче проверяет то что !== null + !== undefined
Так красивее будет posts.some(({ id }) => id === newPost.id) || posts.push(newPost);
ну да, согласен, вечно забываю про some
Я просто для себя запомнил, что существует includes в который можно передавать предикат, забываю тоже как он называется, но просто помню, что он есть, чтобы в случае чего нагуглить
я бы всё равно в три строки написал хд
const postIsAlreadyIncluded = posts.some(({ id }) => id === newPost.id); if (!postIsAlreadyIncluded) { posts.push(newPost); } я б так сделал
Я бы вот так ) const isNotExist = posts.every(({ id }) => id !== newPost.id); if (isNotExist) { posts.push(newPost); }
лучше not вынести из названия переменной
ну я бы в конце тогда отрицание сделал перед some, чем в предикате
Мне наоборот больше нравится, когда нет отрицаний в if
так, не надо тут на однострочники борогозить
мне тоже нравится, но лучше там, чем в переменных
а как немного переделать? Что если такой айди уже есть то мы пушим уже с новым айди который например увеличиваем на 1??
id-то какой брать? максимальный в массиве или тот, что в newPost или что ащ
потому что это обязательно приведет к таким условиям if (!isNotExist)
У меня есть обьект масиво постов, при добавлении новго поста должна быть проверка на айди если такой есть то мы увеличеваем на 1 айди нового поста
const isExist = !isNotExist;
и зачем эти 2 лишних шага?
Затем что нужна и та и та переменная в твоем случае
Ну хз, потом и ту и ту переменную можно использовать и очень семантичненько получается
тогда я бы сначала получил isExist, а потом уже const isNotExist = !isExist;
Ну это понятно, да )
муть какая-то posts.some(({ id }) => id === newPost.id) || posts.push({ ...newPost, id: newPost.id + 1 });
да это муть, не делайте так, а то я потом за вами приду
если они у вас упорядочены, то берите id последнего или храните id. не пишите в одну строчку, когда там явно несколько действий и т.п.
у меня задача сделать фейковий новий пост через апи, с апи все что ты получаешь это одинаковый айди сколько запросов ти не делал всегда айди один и тот же мне надо как то решить эту хрень
может оно и лучше
дыа, мужыцкий код, а эти ванлайнеры для мальчиков
не может, а есть
короче вы там шо-то сложное мутите. в апи вы вообще должны просто кидать пост, а он вам возвращать с id
всё ситуативно, как всегда, да
Хотя это работает как нужно)
это говно(
Ты говоришь что это говно, как его переписать что бы вырвиглазно не было то?)))
ну тк работайте, старайтесь
Обсуждают сегодня