【发布时间】:2018-03-23 11:23:00
【问题描述】:
我有一个回复更新的 JSON 对象的 API 调用,我也有 1 个静态 JSON 对象文件。我正在尝试比较具有相同名称的每个团队的对象中的值。
因此,如果约翰队在旧文件中有 22 个,而现在有 28 个,则新对象应将约翰队输出为 6。减去 2 并显示差异。
我做了一个jsFiddle来帮助理解和更新。
最新更新:答案已由 mscdeveloper 解决!在下面查看他的帖子和答案。
更新(不是答案):我在 stackoverflow 中搜索时找到了一个解决方案,这正是我想要的,但我在此过程中丢失了团队的名称,我该如何修复代码到它不删除它的地方,我知道它与我拥有的 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 是一种字符串格式,您所要做的就是与您的两个 JSON 字符串中的
===.of 进行字符串比较。除非你不是在谈论 JSON,但这就是你所说的...... -
哇这么多投票反对什么?我正在努力解决这个问题,但是这些天人们在没有帮助理解原因的情况下无缘无故地对任何事情投反对票。我只有一个简单的问题,如果我想用 obj2 numMembers 从 obj1 中减去 numMembers,我该怎么做?
标签: javascript jquery json oop javascript-objects