Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Код:
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, 11:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

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

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

Да нет, она прекрасна видна, сделал так
Код:
'Мини': {Name:'mini',
	   width: () => (+cartData[dataId][6].replace(",", ".") + 4).toString().replace(".", ","),				
	   height: +cartData[dataId][7].replace(",", ".") + 5
				},
покубатурив)) понял, что в новой интопритации стрелка-функция ссылается на this поэтому можно без переменных и параметров т.к. значения функции () это и есть this.
Вопрос на сколько это надежно и правильно. Ну а вообще, честно говоря бесит, что кроме точки в числах нельзя использовать ничего, хотя правильно использовать и точку и запитую, вообще не вижу проблем включить это в стандарт)))
Еду медленно, но верно!

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

Ещё такой вопрос, после выполнения нужно удалять данные объекта?
Код:
delete getZamer(cartData[dataId][3]).width();
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 30.10.2018, 11:56   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
сделал так
не понял, если уж Вы продолжаете "кубатурить", то почему не так?
Код:
'Мини': {Name:'mini',
	   width:  +cartData[dataId][6].replace(",", ".") + 4,
	   height: +cartData[dataId][7].replace(",", ".") + 5
	},
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.10.2018, 12:01   #6
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

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

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

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

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

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

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание и увеличение объекта внутри рамки Kiten JavaScript, Ajax 1 18.05.2018 15: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 09:50
Создание модуля данных внутри объекта Шурин БД в Delphi 2 19.03.2009 10:38