Javascript:具有重复日期的过滤器数组

时间:2016-11-04 08:51:11

标签: javascript arrays angular

我正在使用Angular2,我有一个带有Date-Objects的数组(~1000)。 大多数日期对象都具有完全相同的日期(例如2016_11_02;日期没有小时和分钟)。 通常,阵列中应该有大约10-20个不同的日期。

现在我要过滤此数组并删除重复的日期。 所以最后在数组中应该有大约10-20个日期对象。

这是我试过的代码:

let uniqueArray = duplicatesArray.filter(function(elem, pos) {
            return channelEPGDates.indexOf(elem) == pos;
        });
        console.log('unique: ' + uniqueArray.length);

我知道这是不正确的,因为unique-Array与旧数组的长度相同。但是我怎样才能在过滤函数中比较Dates本身?

非常感谢!

4 个答案:

答案 0 :(得分:5)

我会使用Navigation Bar方法将日期映射到纪元时间,然后将它们映射回getTime个对象。

Date

答案 1 :(得分:1)

您可以使用Setspread syntax ...

unique = src => [...new Set(src)];

var unique = src => [...new Set(src)];
    array = ["Mike", "Matt", "Nancy", "Adam", "Jenny", "Nancy", "Carl"];

console.log(unique(array));

答案 2 :(得分:0)

您可以像这样使用jQuery:

var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
var uniqueNames = [];
$.each(names, function(i, el){
    if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});

答案 3 :(得分:-1)

这是一种在Array上使用内置方法的方法。



import fileinput
for line in fileinput.FileInput("Bremgarten_AV.status",inplace=1):
    line = line.replace("processing","upload")
    print line