删除句子中的多字符(角度9)

问题描述 投票:-2回答:2

我有这个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

我想找到oldValuesnewValues之间的区别,然后写这段代码:

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);

}

现在我有这个问题:

****我在newValueoldValue值数组中创建,但它显示如下:

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

我该如何解决这个问题?

javascript angular typescript
2个回答
0
投票

您应该使用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" ?
}

0
投票

而不是将它们存储为数组,而是将值解析为对象

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));
© www.soinside.com 2019 - 2024. All rights reserved.