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, время: 03:25. |