如何添加两个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对象的主要内容,如果未能解决你的问题,请参考以下文章

如何为所有动态生成的 div 添加常用的 Javascript 函数? [复制]

JavaScript - 对象

JavaScript中如何判断两变量是否“相等”?

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

如何远程检查 JavaScript 应用程序的函数调用堆栈?

在javascript中添加两个空白对象或空白数组[重复]