吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1211|回复: 3
收起左侧

[求助] js 对象合拼的问题

[复制链接]
cqwcns 发表于 2019-12-23 15:55


有两个动态生成的对象,格式类似如下:
[JavaScript] 纯文本查看 复制代码
let t1={"type":"pie","tooltip":{},"legend":{},"series":[{"name":"标题","type":"pie","radius":["0%","70%"]}]}
let t2={"series":{"radius":["10%","70%"]}}



我现在需要将这两个对象合拼起来(相同的覆盖掉),类似数组的push,我尝试用$.extend,但发现这样是直接覆盖,变成这样了:
[JavaScript] 纯文本查看 复制代码
{"type":"pie","tooltip":{},"legend":{},"series":{"radius":["20%","70%"]}}

可见这样会覆盖掉一部分数据,这样不符合要求。


由于两个对象是动态生成的,我不能像这样t1['series']['radius']=t2['series']['radius']把代码写死。


所以,像我这样的需求,代码要怎么写?谢谢


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

AIandDeng 发表于 2019-12-23 16:26
本帖最后由 AIandDeng 于 2019-12-23 17:00 编辑

你写错了吧,一个series是对象一个是数组。

瞎写的。

let t1={"type":"pie","tooltip":{},"legend":{},"series":{"name":"标题","type":"pie","radius":["0%","70%"]}}
let t2={"series":{"radius":["10%","70%"]}}


Object.prototype.user_extend = function(target){
    for(let i in target){
        //不含的属性,直接添加
        if(!this.hasOwnProperty(i)){
            this = target;
        }
        //类型不同直接覆盖
        else if(typeof this != typeof target){
            this = target;
        }
        //类型相同且不是引用类型
        else if(typeof this != 'object' ){
            this = target;
        }
        //是引用类型
        else{
            this.user_extend(target);
        }
    }
}

t1.user_extend(t2)
冰茶荼 发表于 2019-12-23 16:49
t1的series是数组
t2的series是对象 lz想得到的数据格式是什么先贴出来
52P 发表于 2019-12-23 17:01
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表