我有这个json回复:
id: 30
tableName: "UserCredit"
keyValues: "{"Id":39}"
oldValues: "{"CoinLastUpdate":"2020-02-18T14:18:13.5155426+00:00","ScoreLastUpdate":"2020-02-18T14:18:13.5155429+00:00"}"
newValues: "{"CoinLastUpdate":"2020-02-18T14:18:15.7325823+00:00","ScoreLastUpdate":"2020-02-18T14:18:15.7325826+00:00"}"
auditType: "Update"
createdOnUtc: "2020-02-18T14:18:15.7338989Z"
createdByRefId: 39
我想找到oldValues
和newValues
之间的区别,然后写这段代码:
setOldNewValue(item: DeiffrentModel): void {
let oldValue;
let newValue;
console.log(item.oldValues)
if (item.newValues !== null) {
newValue = item.newValues.split(',');
}
if (item.oldValues !== null) {
oldValue = item.oldValues.split(',');
}
for (let index = 0; index < newValue.length; index++) {
let addModel = {} as DeifferModel;
addModel.field = 'id';
addModel.newValue = newValue[index];
console.log(oldValue)
if (oldValue !== undefined) {
addModel.oldValue = oldValue[index]
}
this.differModel.push(addModel);
}
this.findDiffrent = _.difference(newValue, oldValue);
}
现在我有这个问题:
****我在newValue
和oldValue
值数组中创建,但它显示如下:
0:“ CoinLastUpdate”:“ 2020-02-18T14:18:13.5155426 + 00:00”
1:“ ScoreLastUpdate”:“ 2020-02-18T14:18:13.5155429 + 00:00”}
但是我只需要2020-02-18T14:18:13.5155429+00:00
我该如何解决这个问题?
您应该使用JSON结构,而不是手动解析字符串。我还将DeifferModel用作class
而不是interface
,因此您可以更轻松地初始化项目:
// in a xxx.model.ts file
export class DeifferModel {
constructor(public field, public newValue, public oldValue) {}
}
// in your component
setOldNewValue(item: DeiffrentModel): void {
if (item.newValues) {
newValue = JSON.parse(item.newValues);
}
if (item.oldValues) {
oldValue = JSON.parse(item.oldValues);
}
Object.keys(newValue).foreach(key => {
const addModel = new DeifferModel('id', newValue[key], oldValue[key]);
this.differModel.push(addModel);
});
this.findDiffrent = _.difference(newValue, oldValue); // no use of "this.differModel" ?
}
而不是将它们存储为数组,而是将值解析为对象
if (item.newValues !== null) {
newValue = item.newValues.split(',');
}
if (item.oldValues !== null) {
oldValue = item.oldValues.split(',');
}
to
oldValue = JSON.parse(oldValues);
newValue = JSON.parse(newValues);
您可以找到这样的毫秒数差异:
CoinLastUpdateDiff = Math.abs(new Date(newValue.CoinLastUpdate) - new Date(oldValue.CoinLastUpdate));