[英]Remove duplicates in an array of objects
我读过一些帖子,其中从数组中删除了重复项。 例如,具有“一个”,“一个”,“两个”,“三个”的数组将使用我在某些帖子中找到的代码返回“一个”,“两个”,“三个”。 我需要删除两个值,因此“一个”,“一个”,“两个”,“三个”将返回“两个”,“三个”。 我正在解析文件并基于正则表达式搜索项目。 这就是我要编写的代码。 有时我正在解析的文件中存在重复数据。 我需要删除该数据。
function parseText(text)
{
var records = text.match(fileRegex);
var fileArray = [];
if (records != null) {
records.forEach(function (element, index, array) {
var matches = elementRegex.exec(element);
if (matches != null) {
var year = matches[parseSettings.ParseYearPosition];
if (year == 2)
{
year = "20" + year;
}
var journalDate = new Date(year,
matches[parseSettings.ParseMonthPosition] - 1,
matches[parseSettings.ParseDayPosition],
matches[parseSettings.ParseHourPosition],
matches[parseSettings.ParseSecondPosition], 0, 0);
var file = {
Id: null,
ImportDate: moment(importDate).format(),
JournalDate: moment(journalDate).format(),
TraceNumber: parseInt(matches[parseSettings.ParseTraceNumberPosition]),
Amount: parseFloat(matches[parseSettings.ParseAmountPosition]),
Deleted: false,
Dirty: true
};
fileArray.push(file);
}
});
deferred.resolve(fileArray);
}
您可以使用简单的for循环来检查fileArray [i] == fileArray [i + 1],如果是,则从数组中将它们拼接起来。
更新
因此,在解析fileArray之前,for循环将如下所示:
for(var i = 1; i <= fileArray.length;) {
if(fileArray[i] == fileArray[i-1]) {
fileArray.splice(i-1, 2);
i+=2;
}
else
i++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.