我已经阅读了一些从数组中删除重复项的帖子。例如,一个数组包含"一个","一个","两个","三个"将返回"一个","两个","三个"使用我在某些帖子中找到的代码。我需要删除这两个值,因此"一个","一个","两个","三个",将返回"两个& #34;,"三"。我正在解析文件并根据正则表达式搜索项目。这就是我对代码所拥有的。有时我在文件中存在重复数据,我正在解析。我需要删除该数据。
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);
}
答案 0 :(得分:0)
您可以使用一个简单的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++;
}