Создание хеша внутри функции - PullRequest
3 голосов
/ 05 апреля 2011

У меня есть функция, которая возвращает хэш, учитывая определенные параметры:

build_message = function(from, to, bcc, subject, tag, htmlbody, textbody, replyto) {
    message = {"From": from,
        "To": to,
        "Subject": subject,
        "HtmlBody": htmlbody,
        "TextBody": textbody};
    message.encode();
}

Некоторые из этих параметров, такие как bcc и replyto, являются необязательными.Если вызывающая сторона предоставляет для них нулевые значения, они не должны присутствовать в хэше, который я возвращаю.То есть "Bcc": bcc должен присутствовать в хэше только в том случае, если аргумент bcc не равен нулю.

Вот моя первая попытка, но парсеру это не нравитсяперед message.encode() строкой функции):

bcc_body = bcc => {"Bcc": bcc} | {};
message.put(bcc_body);

Разрешено ли использование операции put() для переменной внутри функции, подобной этой?Если так, то что-то не так с моим синтаксисом?

1 Ответ

2 голосов
/ 05 апреля 2011

Вы можете использовать .put() внутри функции, но помните, что она возвращает новый хеш и оставляет исходный неизмененным.

Попробуйте завершить свой метод так:

bcc_body = bcc => {"Bcc": bcc} | {};
newmessage = message.put(bcc_body);
newmessage.encode();
...