资源预览内容
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
从对象数组中取出某个属性相同的对象输入:type:a,value:1,type:b,value:2,type:a,value:3,type:b,value:9目标:type:a,value:4,type:b,value:11思路一(较简便)functionsumByType(arr)letobj=arr.forEach(item)=consoleog(obj,item.type,item.value)if(objitem.type!=undefined)objitem.type+=item.valueelseobjitem.type=item.value)returnObject.keys(obj).map(key)=returntype:key,value:objkey)sumByType(type:a,value:1,type:b,value:2,type:a,value:3,type:b,value:9)思路二functionsumByType(arr)if(arr.1ength=0)returnarrif(!Array.isArray(arr)returnarrif(!arr.every(item)=item.type&item.value&typeofitem.type=string&item.type.constructor=String&typeofitem.value=number&!isNaN(item.value)returnarrlettypes=arr.map(item)=returnitem.type)types=Array.from(newSet(types)returntypes.map(type)=letsametypeArr=arr.filter(item)=item.type=type)returnsametypeArr.reduce(pre,cur,index)=cur.value=pre.value+cur.valuereturncur,type:sametypeArr0.type,value:0)sumByType(type:a,value:1,type:b,value:2,type:a,value:3,type:b,value:9)思路二解析1先判断参数格式是否符合标准* 2.遍历数组得到所有的type并去重=获得types:a,b* 3遍历arr,把type相同的对象取出作为新的数组=获得sametypeArr:如type:a,value:1,type:a,value:3的数组* 4.遍历sametypeArr把value相加获得某个type的对象type:a,value:45返回这个对象组成新的数组,即所求结果
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号