Remove common values from multidimension array perl [closed] - perl

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
I want remove common element from array. For example:
array1 =
[
{'id'=>78597,'data'=>'great'}
];
array2=
[
{'id'=>78345,'data'=>'first'},{'id'=>78597,'data'=>'great'},
{'id'=>78355,'data'=>'second'}
]
Now key Id '78597' is common in both array
Now i to want remove that element from array2 based on the key 'id'. The examples I referred where all single dimension.

You can build %seen hash lookup and filter #$array2,
my %seen;
#seen{ map $_->{id}, #$array1 } = ();
#$array2 = grep { !exists $seen{$_->{id}} } #$array2;

Related

How to store an array in session in Perl [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
I am using Mojolicious Perl framework in my application. I want to store an array in session, but is not successful.
my #returnResult;
$returnResult['fn'] = $decoded->{'fn'};
$returnResult['ln'] = $decoded->{'ln'};
$self->session(returnResult => #returnResult);
Please help.
See hashes in Modern Perl and perldata.
my %return_result;
$returnResult{fn} = $decoded->{fn};
$returnResult{ln} = $decoded->{ln};
or
my %return_result = (
fn => $decoded->{fn},
ln => $decoded->{ln},
);
or simply
# http://perldoc.perl.org/perl5200delta.html#New-slice-syntax
my %return_result = %$decoded{qw(fn ln)};
You do not get automatic references like in other languages. Use the \ operator.
$self->session(returnResult => \%return_result);

How to search for a duplicate in a given string using scriptlet? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 3 years ago.
Improve this question
How can I search for a duplicate in a given string using a scriptlet?
ScripletInput= a,b,c,a
Here the letter 'a' is repeating. If it is repeating more than once, then it should exit, else it can go ahead.
Please see Remove occurrences of duplicate words in a string
The code below will remove duplicates in a string.
<script type="text/javascript">
str=prompt("Enter String::","");
arr=new Array();
arr=str.split(",");
unique=new Array();
for(i=0;i<arr.length;i++)
{
if((i==arr.indexOf(arr[i]))||(arr.indexOf(arr[i])==arr.lastIndexOf(arr[i])))
unique.push(arr[i]);
}
unique.join(",");
alert(unique);
</script>

Coolest way combining items in Swift 3 [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Say... I have an array [ 1, 2, 4, 5, 6, 9]. I like to make another array from it. like ["1-2", "2-4", "4-5", "5-6", "6-9"] which is based on one previous item and the other item followed by. What would be the coolest way to achieve this in Swift 3? Yes, I know how to do this old fashion way. But I am wondering, if there is a cool or simple way to do this by using such as map, reduce or others.
Thanks,
You can use zip and map along with dropLast and dropFirst to generate the result:
let arr = [ 1, 2, 4, 5, 6, 9]
let result = zip(arr.dropLast(), arr.dropFirst()).map { "\($0)-\($1)" }
print(result)
Output:
["1-2", "2-4", "4-5", "5-6", "6-9"]
zip works by creating a sequence of tuple pairs from the two sequences. map then takes these pairs and combines them using String interpolation.
As #MartinR pointed out, since zip works with different length sequences, you can skip the dropLast():
let result = zip(arr, arr.dropFirst()).map { "\($0)-\($1)" }
From the documentation seen when you option-click on zip:
If the two sequences passed to zip(::) are different lengths, the
resulting sequence is the same length as the shorter sequence.

Getting weirdly formatted NSDictionary value [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
var nsarray:[NSMutableDictionary] = [["object":["uid":["age":"26","gender":"male"]]]]
print(nsarray[0]["object"])
That is how it looks. I want to get the value "uid", so when it prints it is just "uid". Currently it is printing:
"uid":["age":"26","gender":"male"]
I want to get the "uid" value. Meaning when it prints it is just "uid". "uid" is a placeholder for a unique ID so I won't know what the uid is.
It looks like "object" key contains another dictionary, which has exactly one element. To get the first key, call allKeys to get keys, convert them to Array, and pick the the initial element:
let d = nsarray[0]["object"] as! NSDictionary
print(Array(d.allKeys)[0])

How do I create a Lookup table in Powershell? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I have a list of servernames
PARDC1 EURDC2 EURDC3 USADC1 USADC22 CHNDC1 CHNDC2
I have created a hashtable to pick the first 3 letters of servernames, and classify it in a region.
PAR = EMEA
EUR = EMEA
USA = NAM
CHN = APAC
I want to use the lookup table to classify all servers in appropriate regions.
How do I go about doing this in Powershell ?
You can create an empty hash table with
$hash = #{}
You can then add entries to it with
$hash['foo'] = $bar
or
$hash.foo = $bar
and access them the same way later again.