想请问一下各位小伙伴这道js面试题怎么解 9命啊!

    var goodsPrcie = [
            { name: 'clothes', price: 21 },
            { name: 'clothes', price: 23 },
            { name: 'shoes', price: 21 },
            { name: 'han', price: 22 },
        ]

然后想实现的结果是{clothes44 , shoes:21, han:22}

 function ground(objectArray,property) {
          let pre= objectArray.reduce(function (pre, cur) {
                var key = cur[property]
                if (!pre[key]) {
                    pre[key] = [ ]
                }
                pre[key].push(cur)
               

               return pre
            }, {});
       
       //写到这一步 实在写不下去了  9命啊啊
           
        }

var arr = ground(goodsPrcie, 'name')
        console.log(arr);

你这个数据是写死的吗?还是后台生成的,如果是后台的统计返回就可以了。

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    var goodsPrcie = [
            { name: 'clothes', price: 21 },
            { name: 'clothes', price: 23 },
            { name: 'shoes', price: 21 },
            { name: 'han', price: 22 },
        ]
    function ground(objectArray,property) {
        let pre= objectArray.reduce(function (pre, cur) {
                var key = cur[property]
                if (!(key in pre)) {
                    pre[key] = cur.price;
                } else{
                    pre[key] += cur.price;
                }
                 return pre
            }, {});
        return pre  
    }
var arr = ground(goodsPrcie, 'name')
        console.log(arr);

img

let goodsPrcie = [
{ name: 'clothes', price: 21 },
{ name: 'clothes', price: 23 },
{ name: 'shoes', price: 21 },
{ name: 'clothes', price: 23 },
{ name: 'han', price: 22 },
]

//{clothes:67 , shoes:21, han:22}
//name 相同求和  name不同 返回
function ground(goodsPrcie){
    let newObject={}
    goodsPrcie.forEach((item)=>{
        let b={}
        b[item.name]=item.price
      if(item.name in newObject){
          let newprice=newObject[item.name]
          newObject[item.name]=newprice+item.price    
        }else{
         Object.assign(newObject,b)
        }    
    })
    return newObject
}

console.log(ground(goodsPrcie))