【发布时间】:2021-10-14 03:31:48
【问题描述】:
我在Typescript中有一个项目,我想在其中考虑一个字段的信息来连接两个数组,即如果该字段的值匹配,则删除一个并合并该数组的数据。
这些是我的arrays:
let sheet = [ { fecDate: date,
codCountry: 'CO',
fileName: 'CO_SER.txt',
ftpExists: 0,
sheetExists: 1 },
{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_DAT.txt',
ftpExists: 0,
sheetExists: 1 } ]
let ftp = [ { fecDate: date,
codCountry: 'CO',
fileName: 'CO_SER.txt',
ftpExists: 1,
sheetExists: 0 },
{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_PRU.txt',
ftpExists: 1,
sheetExists: 0 } ]
这就是我想要实现的目标:
let result = [ { fecDate: date,
codCountry: 'CO',
fileName: 'CO_SER.txt',
ftpExists: 1,
sheetExists: 1 },
{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_DAT.txt',
ftpExists: 0,
sheetExists: 1 },
{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_PRU.txt',
ftpExists: 1,
sheetExists: 0 } ]
这是我到目前为止的代码,目前我只设法过滤不在另一个数组中的数据:
let onlyFtp = ftp.filter(await this.objectComparer(sheet, ftp, 'fileName'));
let onlySheet = sheet.filter(await this.objectComparer(ftp, sheet, 'fileName'));
public async objectComparer(fstArr: any, secArr: any) {
try {
let only = fstArr.filter(
(fstItem: any) => !secArr.some((secItem: any) => fstItem[key] === secItem[key])
);
return only;
} catch (error) {
return Promise.reject(error);
}
}
onlyFtp = [{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_PRU.txt',
ftpExists: 1,
sheetExists: 0 } ]
onlySheet = [{ fecDate: date,
codCountry: 'CO',
fileName: 'CO_DAT.txt',
ftpExists: 0,
sheetExists: 1 } ]
这样我得到了不变的数组,所以我只需要更新文件名为“CO_SER.txt”的数组
我的问题:我需要把fileName字段重复的数组去掉,但是不知道如何合并两个数组并更改对应的属性
【问题讨论】:
-
向我们展示您的编码尝试。
-
@RobertHarvey 我已经用我现在的代码更新了我的代码,我只设法过滤那些不匹配的代码以了解那些没有变化的代码
标签: javascript arrays typescript ecmascript-6