Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.02.2023, 01:06
Новичок на форуме
Отправить личное сообщение для ntxhaiss Посмотреть профиль Найти все сообщения от ntxhaiss
 
Регистрация: 25.02.2023
Сообщений: 3

явный возврат объекта
Доброй ночи, совсем недавно начал изучать js, просматривал видеокурс - пока что остановился на теме стрелочных функций, так вот вопрос, дан код ниже
const newPost=(post,addedAt=Data()) => ({
...post,
addedAt,
})
const firstPost={
id:1,
author:'name',
}
const tell=newPost(firstPost)
console.log(tell)

и необходимо переписать код так чтобы с неявного возврата объекта был явный возврат объекта. сидел,бился так и не добился, за помощь спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2023, 01:27
Новичок на форуме
Отправить личное сообщение для ntxhaiss Посмотреть профиль Найти все сообщения от ntxhaiss
 
Регистрация: 25.02.2023
Сообщений: 3

Сообщение от Rise Посмотреть сообщение
Явный возврат это когда написано слово return.
да, я понимаю, но если return не работает в данной функции с неявным возвратом, поэтому необходимо опустить круглые скобки, после чего
разделение объекта post на свойства уже не происходит, ошибка синтаксиса, оператор ... выделен красным,дальше я что только не делал возвращалась только Data()
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2023, 19:16
Новичок на форуме
Отправить личное сообщение для ntxhaiss Посмотреть профиль Найти все сообщения от ntxhaiss
 
Регистрация: 25.02.2023
Сообщений: 3

Сообщение от Rise Посмотреть сообщение
ntxhaiss,
Тело функции тоже должно быть показано явно: () => { return ({}) }, неявно: () => ({}).
благодарю за пояснение, все получилось
Ответить с цитированием
  #4 (permalink)  
Старый 25.02.2023, 20:11
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сойдет и так...
() => { return {} }

Вообще без круглых скобок.
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2023, 22:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от Rise
Неа, из-за троеточия ошибка буде
Бивас, тест! (с)

const tmp = {k1: 1, k2: 2}
const test = () => { return {...tmp, ok: true} }
alert(JSON.stringify(test()))

Работает и со спредом...
Ответить с цитированием
  #6 (permalink)  
Старый 12.11.2024, 16:44
Новичок на форуме
Отправить личное сообщение для ePaul69 Посмотреть профиль Найти все сообщения от ePaul69
 
Регистрация: 12.11.2024
Сообщений: 2

Добрый день. Столкнулся с такой же проблемой.
Как уже сказал, искал точно такое же решение. Но к сожалению не смог вывести его из постов, которые уже есть в данной ветке.
Поэтому прилагаю свое решение:

// Создаю объект, который в дальнейшем закину 
// как аргумент в функцию
const post = {
    id: 1,
    author: 'Paul'
}

// Далее соответственно создаем функцию
const newPost = (post, addedAt = Date()) => { 
    post.addedAt = addedAt // добавляем к объекту свойство
    return post // явно передаем созданный в нашей функции объект
}

console.log(newPost(post));


Не уверен что это правильное решение, но вроде работает.

Ну и только только врубился в решение указанное ksa, простите. Переделал его под свой пример и все получилось. Еще раз большое спасибо.
// Создаю объект, который в дальнейшем закину
// как аргумент в функцию
const post = {
    id: 1,
    author: 'Paul'
}

// Далее соответственно создаем функцию
const newPost = (post, addedAt = Date()) => {return {...post, addedAt}} // явно передаем созданный в нашей функции объект

console.log(newPost(post));

Последний раз редактировалось ePaul69, 12.11.2024 в 23:31.
Ответить с цитированием
  #7 (permalink)  
Старый 12.11.2024, 17:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от ePaul69
post = post
Это масло масляное...
Можно просто удалить.

Сообщение от ePaul69
Не уверен что это правильное решение, но вроде работает.
Так смотря что ты решал этим кодом...
Ответить с цитированием
  #8 (permalink)  
Старый 12.11.2024, 20:25
Новичок на форуме
Отправить личное сообщение для ePaul69 Посмотреть профиль Найти все сообщения от ePaul69
 
Регистрация: 12.11.2024
Сообщений: 2

явная передача объекта
Решал туже задачу что и автор, хотел явно передать объект из функции(Что бы это не значило).

Поправил масло масляное с 'post', спасибо

Последний раз редактировалось ePaul69, 12.11.2024 в 23:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из неявного возврата объекта сделать явный возврат объекта? xliverscxtt Общие вопросы Javascript 3 07.02.2022 19:57
При вызове локальной функции объекта не могу использовать свойства объекта Gudsaf Общие вопросы Javascript 7 17.09.2016 20:23
Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта. Zemsky Общие вопросы Javascript 30 19.12.2013 19:44
Скрипт вычисления координат объекта banderasantonio197555 Events/DOM/Window 4 16.08.2011 17:37
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00