JS 函数的操作方法

1.reduce()

这个reduce方法的第一个参数为匿名函数(这个匿名函数的pre参数为上一次遍历的值,cur参数为本次遍历的值),第二个参数可传可不传,若传递了第二个参数,那么就表示pre的初始值。

//求数组价格的最大值
let arr = [
        {id: 1, name: '华为', price: 6000},
        {id: 2, name: '小米', price: 5888},
        {id: 3, name: 'oppo', price: 2544},
        {id: 4, name: '苹果', price: 16000}];

    function getMaxMoney(arr) {
        return arr.reduce(function (pre, cur) {
            return pre.price > cur.price ? pre : cur
        })
    }

    console.log(getMaxMoney(arr)); //{id: 4, name: "苹果", price: 16000}
//求数组价格总和
let arr = [
        {id: 1, name: '华为', price: 6000},
        {id: 2, name: '小米', price: 5888},
        {id: 3, name: 'oppo', price: 2544},
        {id: 4, name: '苹果', price: 16000}];
    
    function getTotalMoney(arr) {
        return arr.reduce(function (total, cur) {
            return total += cur["price"]
        }, 0)
    }

    console.log(getTotalMoney(arr)); //30432
//求价格大于6000的商品名称 
 let arr = [
        {id: 1, name: '华为', price: 6899},
        {id: 2, name: '小米', price: 5888},
        {id: 3, name: 'oppo', price: 2544},
        {id: 4, name: '苹果', price: 16000}];

    function getTotalName(goods, price) {
        return goods.reduce(function (arr, cur) {
            if (cur.price > price) {
                arr.push(cur)
            }
            return arr;
        }, []).map(item => item.name)
    }

    console.log(getTotalName(arr, 6000)); //["华为", "苹果"]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值