所以我有2个jSON文件,两个都有相同的设置和相同的对象,差异是一个有旧数据没有更新,另一个有实时更新的实时数据,我想用新数据减去旧数据,然后输出结果。
我使用的代码不成功:
jQuery.getJSON(liveDataURL, function(liveData){
jQuery.getJSON(oldDataURL, function(oldData){
liveData.sort(function(a, b){
return a.number - b.number;
}).reverse();
oldData.sort(function(a, b){
return a.number - b.number;
}).reverse();
var newList = liveData.number - oldData.number;
console.log(newList);
});
感谢任何帮助!
答案 0 :(得分:0)
减法是什么意思?
a = {foo:17,bar:12,baz:false} b = {foo:17,bar:10}
“a - b”是什么意思?
假设:
“a - b”:= {bar:12,baz:false}
这样的事情会起作用:
const delta = (a, b) => {
const d = {};
Object.keys(a).forEach(key => {
if (typeof a[key] === 'object') {
d[key] = delta(a[key], b[key] || {});
if (d[key] === undefined) {
delete d[key];
}
} else {
if (a[key] !== b[key]) {
d[key] = a[key];
}
}
});
return Object.keys(d).length ? d : undefined;
};
答案 1 :(得分:-1)
var newList = liveData.number - oldData.number;
这是找到列表之间差异的错误方法。 只要这样做,如果你想找到数字的差异
假设两个列表的长度相同。
var newList = [];
for (var i = 0; i < liveData.length; i++){
newList.append(liveData[i].number - oldData[i].number);
}