json字符串如何合并和加总?php

发布于 2022-09-11 23:42:14 字数 420 浏览 17 评论 0

好奇几个问题:
https://imgur.com/IbDlzIW (资料多笔,其中的两笔)
这种格式,如果想要把它⋯⋯
1.合并成一个 json ?

{"charm":1,"hp":1}, {"charm":2,"hp":1}
to
{"charm":3,"hp":2}

2.key 会不固定,但有机会重复,能怎么自动 sum?
每次可能都不同
{"charm":1,"hp":2}
{"charm":3,"ccc": 2, "hp":1}
{"aaa":3,"bbb":2, hp":2}

能怎么做?感谢各路好手

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

紫南 2022-09-18 23:42:14
let arr = [
    {"charm":1,"hp":2,"bbb":3},
    {"charm":3,"hp":2,"aaa":2}
]
    
function sum(arr) {
  return arr.reduce((pre,cur) => {
    Object.keys(cur).forEach(v => {
        if (!pre[v]) {
            pre[v] = cur[v]
        } else {
            pre[v] += cur[v]
        }
    })
    return pre;
 },{})
}
console.log(sum(arr)) //{charm: 4, hp: 4, bbb: 3, aaa: 2}
2022-09-18 23:42:14

自己写也是能玩的

function customSum(arr){
    let obj={}
    if(!Array.isArray(arr)) return obj
    arr.forEach((item,index)=>{
        Object.keys(item).forEach(function(key){
            if(obj[key]){
                obj[key]=obj[key]+item[key]
            }else{
                obj[key]=item[key]
            }
        })
    })
    return obj
}
customSum([{"charm":1,"hp":2},{"charm":3,"ccc": 2, "hp":1},{"aaa":3,"bbb":2, hp:2}])
命比纸薄 2022-09-18 23:42:14

array_merge_recursive + array_sum

深海少女心 2022-09-18 23:42:14

这个用 reduce方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文