javascript - 对循环中的对象数组应用折扣,无论哪个对象的支付值较高?

标签 javascript reactjs arrays loops object

我有一组具有 key 付费的对象。我想使用循环对所有对象应用折扣,除了付费值较高的对象。

var booking = [
{id:1,paid:200,currency:'USD'},
{id:2,paid:99,currency:'USD'},
{id:3,paid:100,currency:'USD'},
]

在上面的对象名称数组booking上,我想通过在该对象中添加键discount:true来进行循环并应用折扣,除了更高的paid > 值对象。

这就是循环后我想要的

var booking = [
{id:1,paid:200,currency:'USD'},
{id:2,paid:99,currency:'USD',discount:true},
{id:3,paid:100,currency:'USD',discount:true},
]

最佳答案

您可以先获取最大付费值,然后根据需要应用新属性。

const
    booking = [{ id: 1, paid: 200, currency: 'USD' }, { id: 2, paid: 99, currency: 'USD' }, { id: 3, paid: 100, currency: 'USD' }],
    max = Math.max(...booking.map(({ paid }) => paid)),
    result = booking.map(o => ({ ...o, ...o.paid === max || { discount: true } }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 对循环中的对象数组应用折扣,无论哪个对象的支付值较高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74006591/

相关文章:

javascript - Webpack 版本 5.1.2 "MainTemplate.hooks.startup has been removed"出错

arrays - 如何扩展数组的哈希值?

javascript - $.getJSON 没有将数据保存到全局变量/对象中,该变量/对象是本地的

javascript - 显示不同组件时如何防止语义用户界面关闭?

javascript - React.js + 中间人如何用于缓存和 SEO?

javascript - 根据最旧到最新的日期将对象插入数组

c++ - 在 C/C++ 中传递多维数组

javascript - 从点创建多边形的算法

javascript - React js组件不监听Jquery插件

javascript - onBlur 事件在加载应用程序 ReactJS 时自动运行