如何添加两个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 函数? [复制]
如何将服务器端和客户端的 tabview 组件与 jsf 匹配?