我尝试根据JSON值的集合输出项目列表及其先前版本的值。
我试过recreate the code我在记忆中工作,但它没有工作。
我应该使用什么算法来回顾这些版本,找到上一个项目并在其上输出差异?
这是我到目前为止所得到的,但它已经相当破碎了:
function findPriceChanges(data){
var changeSet = _.keys(data)
// for each change set
return _.each(changeSet, function(change){
// map over each change set until you find the same key
return _.map(change, function(itemIDInChange, index, list){
var previousVersion = change.version;
do{
// descend through the items until you run out of items
// or we find an item that matches
previousVersion -= 1;
var previousChangeitem = _.where(data[previousVersion], {id:itemIDInChange});
}while(previousVersion !== 0 && !previousChangeitem)
return {
old: previousChangeitem.price || null,
new: change[itemIDInChange].price,
name: change[itemIDInChange].price
}
})
})
}
这是正确的方法吗?我如何解决这个问题以获得所需的输出?