找出数组中相同key的对象,并将对应的value进行拼接

数组如下:

 let ary = [
        {fileName: "文档1", nodeId: "1133275924701949952"},
        {fileName: "文档2", nodeId: "1133275743956807681"}, 
        {fileName: "文档3",nodeId: "1133275683449434112"},
        {fileName: "文档4", nodeId: "1133275743956807681"},
        {fileName: "文档5", nodeId: "1133275683449434112"},
        {fileName: "文档6",nodeId: "1133275924701949952"},
        {fileName: "文档7", nodeId: "1133275924701949951"}
    ]

刚开始的时候确实没有思路,最后在队友的帮助下得到了解决,这里记录下实现思路

function processData(ary){
 // 定义一个空对象来做存储判断
let hasMap =  {} ;
ary.forEach( fileInfo =>{
// 取出每一项中的nodeId和fileName=>ES6的解构赋值
let { nodeId,fileName} = fileInfo
//如果对应的id在对象中不存在的话,我们将nodeId作为key将fileName作为value
if(!hasMap[nodeId]){
hasMap[nodeId] = fileName;
}
 //如果存在的话的在原有的nodeId上面拼接上这个fileName
else{
hasMap[nodeId] += fileName;
}
})
   /* object.values(obj),返回一个数组,其元素是在对象找到可枚举属性值。属性的顺序于通过手动循环对象的属性值所给出的顺序相同,
  obj被返回可枚举属性值对象,
  返回值一个包含对象自身的所有可枚举属性值得数组 */
return Object.values(hasMap)
}

数组操作在日常的工作中用到的很多,我们需要多练习来锻炼自己的思维方式!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值