Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 30.10.2018, 06:50   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию Функция внутри объекта

Код:

function getZamer (type) {
            return {
            'Мини': {Name:'mini',
                      width: () => {let dd = +cartData[dataId][6].replace(",", ".") + 4;
                           dd.toString().replace(".", ",")}
                }
              }[type];
            };      
dataCard += "Габаритная ширина:"+ getZamer(cartData[dataId][3]).width() +" см";

но результат getZamer(cartData[dataId][3]).width()= undefined.
__________________
Еду медленно, но верно!
spoon100500 вне форума   Ответить с цитированием
Старый 30.10.2018, 12:10   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,506
Репутация: 5308
По умолчанию

а почему Вы внутри функции используете cartData[dataId][6] ?
может быть, там не видна переменная cartData или переменная dataId.
по хорошему, всё, что Вы используете внутри функции, должно передаваться через параметры функции.

ну и отладчик с точками останова Вам в помощь!
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 30.10.2018, 12:38   #3
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию

Да нет, она прекрасна видна, сделал так
Код:

'Мини': {Name:'mini',
	   width: () => (+cartData[dataId][6].replace(",", ".") + 4).toString().replace(".", ","),				
	   height: +cartData[dataId][7].replace(",", ".") + 5
				},

покубатурив)) понял, что в новой интопритации стрелка-функция ссылается на this поэтому можно без переменных и параметров т.к. значения функции () это и есть this.
Вопрос на сколько это надежно и правильно. Ну а вообще, честно говоря бесит, что кроме точки в числах нельзя использовать ничего, хотя правильно использовать и точку и запитую, вообще не вижу проблем включить это в стандарт)))
__________________
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 30.10.2018 в 12:43.
spoon100500 вне форума   Ответить с цитированием
Старый 30.10.2018, 12:52   #4
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию

Ещё такой вопрос, после выполнения нужно удалять данные объекта?
Код:

delete getZamer(cartData[dataId][3]).width();

__________________
Еду медленно, но верно!
spoon100500 вне форума   Ответить с цитированием
Старый 30.10.2018, 12:56   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,506
Репутация: 5308
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
сделал так
не понял, если уж Вы продолжаете "кубатурить", то почему не так?
Код:

'Мини': {Name:'mini',
	   width:  +cartData[dataId][6].replace(",", ".") + 4,
	   height: +cartData[dataId][7].replace(",", ".") + 5
	},

Serge_Bliznykov на форуме   Ответить с цитированием
Старый 30.10.2018, 13:01   #6
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию

Зачем мне менять запятую на точку если мне нужно наоборот?
__________________
Еду медленно, но верно!
spoon100500 вне форума   Ответить с цитированием
Старый 30.10.2018, 13:03   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,506
Репутация: 5308
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Зачем мне менять запятую на точку если мне нужно наоборот?
для того, чтобы это стало ЧИСЛОМ. Ведь вы же + поставили - тем самым Вы просите интерпретатор кода JS преобразовать строку в число для того, чтобы прибавить к этому числу некое значение (найти сумму двух чисел).
А по поводу запятых и точек. JS придерживается правила, что для разделения целой и дробной части используется только точка и ничего, кроме точки.
Всё остальное - от лукавого.

Поэтому, если Вам так уже сильно надо иметь именно запятую (я лично так не считаю), то занимайтесь преобразованием самостоятельно.

кстати, для преобразования числа в строку можете использовать Number.toLocaleString()

а вот парсить, похоже, можно только через замену запятых на точки:
https://javascript.ru/forum/misc/158...-nastroek.html

Последний раз редактировалось Serge_Bliznykov; 30.10.2018 в 13:09.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 30.10.2018, 13:05   #8
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию

Я не спорю, вы правы, НО в итоге мне нужна запятая, а не точка. Тем боле, массив содержит "число с запятой" (50,5) и хоть сто плюсов ставь он не сложит, а прибавит т.е. будет 50,54.
Вот поэтому я сперва убираю запятую и ставлю точку (теперь это число) прибавляю 4 и преобразую в строку где меняю точку на запятую)) Может и лишнее это всё)) оставить точку, да и чёрт с ней.
__________________
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 30.10.2018 в 13:10.
spoon100500 вне форума   Ответить с цитированием
Старый 30.10.2018, 13:10   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,506
Репутация: 5308
По умолчанию

я дополнил свой пост выше...
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 30.10.2018, 13:14   #10
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 362
Репутация: -23
По умолчанию

Про delete что скажите? Нужно чистить или само пройдет)
__________________
Еду медленно, но верно!
spoon100500 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание и увеличение объекта внутри рамки Kiten JavaScript, Ajax 1 18.05.2018 16:24
Положение объекта внутри ячейки CSS kronter HTML и CSS 1 09.04.2014 14:27
[Java] Создание объекта внутри объекта этогоже класса. Svarogich Помощь студентам 2 01.08.2011 16:03
Объявление метода внутри объекта JAVASCRIPt Kasper1 JavaScript, Ajax 4 09.03.2011 10:50
Создание модуля данных внутри объекта Шурин БД в Delphi 2 19.03.2009 11:38


12:15.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru