Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Duplicate Element in an Array

by johngg (Abbot)
on Aug 21, 2012 at 23:56 UTC ( #988902=note: print w/replies, xml ) Need Help??


in reply to Duplicate Element in an Array

It is not clear how you arrive at your expected output. Your group one is clear enough but I can't see the logic of how you arrive at your groups two, three and four. Perhaps you could explain further how you are separating the items. Here is a possible solution that builds an AoA by forming arrays of unique and duplicate items then recursively acting on the duplicates until none are left. It does not arrive at the same group members you show. The code.

use strict; use warnings; use Data::Dumper; my @input = qw{ 1200 1300 1200 1000 1100 1200 1500 1700 2000 2100 3000 2100 1200 1500 1700 1700 }; my @groups = deDup( \ @input ); print Data::Dumper->Dumpxs( [ \ @groups ], [ qw{ *groups } ] ); sub deDup { my $raToCheck = shift; my $raUniq = []; my $raDups = []; my %seen; push @{ $seen{ $_ } ++ ? $raDups : $raUniq }, $_ for @$raToCheck; return $raUniq, @$raDups ? deDup( $raDups ) : (); }

The output.

@groups = ( [ '1200', '1300', '1000', '1100', '1500', '1700', '2000', '2100', '3000' ], [ '1200', '2100', '1500', '1700' ], [ '1200', '1700' ], [ '1200' ] );

I hope this is helpful.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://988902]
help
Chatterbox?
[Discipulus]: my warmest comprehension karlgoethebier ;=(
[Discipulus]: yes LanX.. is so good to be appreciated (I fortunately have a big self estimation that compensate)
[LanX]: you can manipulate a html tree by addressing and replacing so called document objects (DOM) and from my experience the same methods can be used with any XML, though I didn't test all browsers yet
LanX just joking, playing "ego judo"
[marto]: good morning all
[Corion]: Hi marto!
[marto]: the race to the bottom continues, many people lost their job yesterday as a client moves to another outsourcer
[LanX]: brexit or perlxit ?

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2017-03-23 09:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (285 votes). Check out past polls.