我有一个api调用,它使用更新的jSON对象进行回复,我也有1个静态json对象文件。我正试图比较每个团队中具有相同名称的对象中的值。JavaScript/jQuery:比较2个jSON对象并将结果输出到新对象
因此,如果团队约翰在旧文件中有22个,并且现在有28个,那么新对象应该将Team John输出为6.减去2并显示差异。
我做了一个jsFiddle来帮助理解和更新。
最新更新:答案已被mscdeveloper解决!检查他的帖子并在下面回答。
UPDATE(未回答):我已经找到了解决方案,同时在计算器搜索,这不正是我想要的,但我在这个过程中失去了球队的名字,我怎么能修复代码到它doesn不会删除它,我知道它与我有的groupByTypeID函数有关系吗?
更新的jsfiddle:https://jsfiddle.net/kqmfsz9n/5/
var obj1 = {
"teams": [
{
name: 'Test 1',
numMembers: '50'
},
{
name: 'Test 2',
numMembers: '12'
}
]
};
var obj2 = {
"teams": [
{
name: 'Test 1',
numMembers: '75'
},
{
name: 'Test 2',
numMembers: '18'
}
]
};
var newObj = {};
function groupByTypeID(arr) {
var groupBy = {};
jQuery.each(arr, function() {
groupBy[this.name] = parseInt(this.numMembers);
});
return groupBy;
}
var userArrayGroups = groupByTypeID(obj2.teams);
var origArrayGroups = groupByTypeID(obj1.teams);
var newObj = [];
for (var prop in userArrayGroups) {
newObj[prop] = userArrayGroups[prop] - origArrayGroups[prop];
newObj.push(userArrayGroups[prop] - origArrayGroups[prop]);
if (newObj[prop] == 0) {
delete newObj[prop];
}
}
console.log(newObj);
所有帮助表示赞赏! 谢谢。
那其他类型的? (字符串,日期,数组,......) –
因为** JSON是一种字符串格式**所有你需要做的就是用'==='.of你的两个JSON字符串进行字符串比较。除非你不是在谈论JSON,但那就是你所说的...... –
哇这么多投票权为了什么?我试图让这个问题得到解决,但是现在人们没有理由不理解为什么没有任何理由就投下任何东西。 我所有的只是一个简单的问题,如果我想从obj1减去numMembers与obj2 numMembers,我会怎么做呢? –