I have a javascript array object:
var items = [
{address: 'abc'}, {address: 'abc'}, {address: 'abc'},
{address: 'abc'}, {address: 'wer'}, {address: 'xyz'},
{address: 'xyz'}, {address: 'xyz'}
];
What I want to do is that I consider 2 items as one item.. If the address of items repeats twice.. i consider it as one item.. the single unique item will be treated as one...
I want its output like this:
[
{address: 'abc'}, {address: 'abc'},
{address: 'wer'},
{address: 'xyz'}, {address: 'xyz'}
];
Above is the expected output..
The concept is like this:
abc , abc , abc SHOULD BE abc, abc
xyz , xyz, xyz SHOULD BE xyz, xyz
wer SHOULD BE wer
Well what I have tried so far is:
var items = [
{address: 'abc'}, {address: 'abc'}, {address: 'abc'},
{address: 'abc'}, {address: 'wer'}, {address: 'xyz'},
{address: 'xyz'}, {address: 'xyz'}
];
var itemsNew = [];
var preItem = '';
var a = 1;
var x = false;
for(var i = 0; i < items.length; i++){
var itemDeliveryAddress = items[i].address;
if(a == 2){
if(preItem == itemDeliveryAddress){
preItem = '';
a=1;
}
else {
preItem = '';
a=1;
itemsNew.push(itemDeliveryAddress);
}
}
else {
a++;
preItem = itemDeliveryAddress;
itemsNew.push(itemDeliveryAddress);
}
}
But the above code is not grouping the items properly.. I am getting this output:
abc,abc,wer,xyz,xyz
Note: I have sorted the array first in ascending order