Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 04.02.2023, 05:40
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

1) Как вот этот параметр product понял что он будет объектом этого массива inputProducts

Вот это я понял
reduce взял массив products и вторым аргументом product взял элемент из этого массива
Ответить с цитированием
  #22 (permalink)  
Старый 04.02.2023, 09:27
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

Может все таки самому почитать как следует учебник.
Тут трудно написать больше, чем там написано.
2 Ну вот так язык js устроен.
К свойству можно обратиться и product.Accessories и product['Accessories']
3 Если product.Accessories != undefined (нет такого свойства) или 0 или null, или false или '', то взять в место него 0 (|| 0). иначе взять само значение product.Accessories и прибавить к нему product.quantity
Результат запихнуть в product.Accessories (если такого свойства нет, оно будет создано).
Ответить с цитированием
  #23 (permalink)  
Старый 04.02.2023, 16:50
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

почему вот эта часть qtyByCategories[product.category] стала значением вот этого свойства quantity:
Ответить с цитированием
  #24 (permalink)  
Старый 04.02.2023, 19:04
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

А она не стала.
qtyByCategories - это новый объект, изначально пустой, в который запихиваются свойства с именами из product.category, а значение накапливается сумма из quantity.
Читать и учить как работает reduce.
Ответить с цитированием
  #25 (permalink)  
Старый 05.02.2023, 03:27
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

voraa,
спасибо
Ответить с цитированием
  #26 (permalink)  
Старый 09.02.2023, 11:55
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Кто может объяснить почему тут два оператора return

И почему JS понимает что после оператора + он должен сложить значение rating: elem.rating + 100 есть какое то правило синтаксиса ?

const test = [
        {
            author: 'a',
            category: "nub",
            rating: 10,
        },
        {
            author: 'b',
            rating: 20,

        },
        {
            author: 'c',
            category: "nub",
            rating: 30,
        },
    ]
    const fn = (arr) => {
        return arr.map((elem) => {
            return {
                avtor: elem.author,
                category: elem.category === undefined ? "nub" : elem.category,
                rating: elem.rating + 100
            }
        })
    }
    const testCopy = fn(test)
    console.log(testCopy);
Ответить с цитированием
  #27 (permalink)  
Старый 09.02.2023, 15:00
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

const fn = (arr) => {
        return arr.map((elem) => {
            return {
                avtor: elem.author,
                category: elem.category === undefined ? "nub" : elem.category,
                rating: elem.rating + 100
            }
        })
    }


Первый return относится к функции fn, а второй к функции, которая передается в map
Сообщение от Сергей Ракипов
почему JS понимает что после оператора + он должен сложить
Потому, что оператор + складывает значения, которые слева и справа от него.
Ответить с цитированием
  #28 (permalink)  
Старый 10.02.2023, 04:45
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от voraa Посмотреть сообщение

Первый return относится к функции fn, а второй к функции, которая передается в map

Потому, что оператор + складывает значения, которые слева и справа от него.
А в каких случай нужно еще дважды написать return?
Просто как я думаю что написал функцию и сказал ее вернуть значение. И как бы достаточно. Не совсем понятно почему после того как я функции сказал врени результат своей работы нужно еще раз внутри написать верни. Может быть есть какие то правила которые просят писать возврат дважды

Вот тут JS avtor: elem.author, он понял что нужно изменить ключ.

А вот тут rating: elem.rating + 100 он понял что нужно сложить значение. Хотя визуально можно понять что оставь имя прежним просто напиши еще 100 которое переведется в строку. Хотя признаю может и звучит как то идиотский. Просто какое то правила синтаксиса что если написано так то будет делать такие действие если по другому то другие.
Ответить с цитированием
  #29 (permalink)  
Старый 10.02.2023, 07:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

Сообщение от Сергей Ракипов
А в каких случай нужно еще дважды написать return?
return можно и нужно писать столько раз, сколько нужно. Например так
function sign (x) {
   if (x<0) return -1;
   if (x>0) return 1;
   return 0;
}

Если функция должна вернуть значение, то у нее должен быть хотя бы один return. Если используются две такие функции, значит надо будет написать return 2 раза.

Сообщение от Сергей Ракипов
Просто какое то правила синтаксиса что если написано так то будет делать такие действие если по другому то другие.
Есть простое правило. значение свойства при задании литерала объекта можно задавать выражением.
Ответить с цитированием
  #30 (permalink)  
Старый 10.02.2023, 09:46
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

voraa,
спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28