Как подменить свойство объекта в цикле for
Нужна помощь! :help: Перебираю циклом for массив с объектами примерно такой:
[{"product": "name1", "price": "10"}, {"product": "name2", "price": "20"}, {"product": "name3", "price": "30"}] В некоторых случаях в объекте может не быть одного свойства, при этом я могу понять это по имени, например [{"product": "name1", "price": "10"}, {"product": "Free"}, {"product": "name3", "price": "30"}] Как можно в цикле, если "product": "Free" создать свойство "price": "0"? Просто начинают свойства смещаться, получается product[1] = "Free", price[1] = "30" (из третьего объекта, т.к во втором нет цены), а product[2] = "30" и price[2] = undefined; |
DenZen,
<script> let ar = [{"product": "name1", "price": "10"}, {"product": "Free"}, {"product": "name3", "price": "30"}] ar.forEach(e => { if(e.product === "Free") e.price = "0"; }); document.write(JSON.stringify(ar)) </script> |
Цитата:
const arr = [ {"product": "name1", "price": "10"}, {"product": "Free"}, {"product": "name3", "price": "30"} ] arr.forEach(el => alert(el.product + ' - ' + (el?.price ?? 0))) |
el?.price ?? 0первый вопросик бессмысленный. Еся там не будет el - оно свалится ещё на el.product.) |
Цитата:
Вопрос был только Цитата:
|
ksa,
В выражении alert(el.product + ' - ' + (el?.price ?? 0)))нет смысла использовать "?." |
Часовой пояс GMT +3, время: 13:54. |