1) Как вот этот параметр product понял что он будет объектом этого массива inputProducts
Вот это я понял reduce взял массив products и вторым аргументом product взял элемент из этого массива |
Может все таки самому почитать как следует учебник.
Тут трудно написать больше, чем там написано. 2 Ну вот так язык js устроен. К свойству можно обратиться и product.Accessories и product['Accessories'] 3 Если product.Accessories != undefined (нет такого свойства) или 0 или null, или false или '', то взять в место него 0 (|| 0). иначе взять само значение product.Accessories и прибавить к нему product.quantity Результат запихнуть в product.Accessories (если такого свойства нет, оно будет создано). |
почему вот эта часть qtyByCategories[product.category] стала значением вот этого свойства quantity:
|
А она не стала.
qtyByCategories - это новый объект, изначально пустой, в который запихиваются свойства с именами из product.category, а значение накапливается сумма из quantity. Читать и учить как работает reduce. |
voraa,
спасибо |
Кто может объяснить почему тут два оператора 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); |
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 avtor: elem.author, он понял что нужно изменить ключ. А вот тут rating: elem.rating + 100 он понял что нужно сложить значение. Хотя визуально можно понять что оставь имя прежним просто напиши еще 100 которое переведется в строку. Хотя признаю может и звучит как то идиотский. Просто какое то правила синтаксиса что если написано так то будет делать такие действие если по другому то другие. |
Цитата:
function sign (x) { if (x<0) return -1; if (x>0) return 1; return 0; } Если функция должна вернуть значение, то у нее должен быть хотя бы один return. Если используются две такие функции, значит надо будет написать return 2 раза. Цитата:
|
voraa,
спасибо |
Часовой пояс GMT +3, время: 02:03. |