Как подменить свойство объекта в цикле 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, время: 07:25. |