如何添加两个javascript对象

Posted

技术标签:

【中文标题】如何添加两个javascript对象【英文标题】:how to add two javascript objects 【发布时间】:2020-05-14 05:07:27 【问题描述】:

我对 javascript 对象有疑问,我想添加两个相同的对象结构 在这里他们也是首先他们的对象是字符串

data1 = '"display:["counter":"A023","token":"001"]"'
data2 = '"display:["counter":"A013","token":"003"]"'

预期结果 新的

data = '"display:["counter":"A023","token":"001", "counter":"A013","token":"003"]"'

我已经尝试过这些代码

var data1 = JSON.parse(data1);
var data1 = JSON.parse(data1);
var newdata = $.merge(data1.display, data2.display);

我无法解决这个问题,我不知道该怎么做我也尝试了其他代码

【问题讨论】:

阅读更多关于JavaScript spread syntax的信息。确保...object中的object必须是对象,包括空对象,否则会报错。 【参考方案1】:

试试这个:

let data1 = '"display":["counter":"A023","token":"001"]'
let data2 = '"display":["counter":"A013","token":"003"]'

data1 = JSON.parse(data1);
data2 = JSON.parse(data2);

data = JSON.stringify(display: [...data1.display, ...data2.display])
console.log(data)

【讨论】:

感谢我移动了一步,但我需要它最后的数据应该是字符串 @NurbekBoymurodov 立即查看我的编辑。数据现在是字符串 它返回给我这个 "display":[["counter":"205","token":"A021"],["counter":"205","token ":"A022"]] 我想要这个 "display":["counter":"205","token":"A021","counter":"205","token": "A022"] console.log 删除最外层的 \"\"。尝试运行 typeof data 你会看到它是字符串 是的,它是字符串,只需比较 "display":[["counter":"205","token":"A021"],["counter":"205" ,"token":"A022"]] 和这个 "display":["counter":"205","token":"A021","counter":"205","token" :"A022"] tere are extra [] between two arrys【参考方案2】:

假设 JSON 字符串遵循有效格式:

let data1 = '"display":["counter":"A023","token":"001"]';
let data2 = '"display":["counter":"A013","token":"003"]';

let data = 
  display: JSON.parse(data1).display.concat(JSON.parse(data2).display)
;

console.log(data);

【讨论】:

【参考方案3】:

您不想将数据对象用引号括起来。您可以将它们标记为常规对象,然后使用扩展操作来实现您想要的。

let data1 = "display:["counter":"A023","token":"001"]"
let data2 = "display:["counter":"A013","token":"003"]"
let mergedData = "display": [...data1.display, ...data2.display]

【讨论】:

您的语法无效。【参考方案4】:

您可以使用Array.prototype.concat()。您的 data1 和 data2 值也不是有效的 json。我更新了这些值

let data1 = '"display":["counter":"A023","token":"001"]';
let data2 = '"display":["counter":"A013","token":"003"]';

data1 = JSON.parse(data1);
data2 = JSON.parse(data2);

data1.display = data1.display.concat(data2.display);
let output = JSON.stringify(data1)
console.log(output)

【讨论】:

以上是关于如何添加两个javascript对象的主要内容,如果未能解决你的问题,请参考以下文章

如何将服务器端和客户端的 tabview 组件与 jsf 匹配?

如何将两个光照贴图添加到共享相同材质的两个不同对象

如何使用 jQuery 连续移动对象

tcp/ip协议丢失

多网段的局域网怎么互通

如何在人脸的两个点集之间添加度量以将其用于数字图像中的对象检测以进行人脸识别