Сombine elements in array by JSON's items

I have simple array with JSON items:

array = [
 {number: 9, item: 'Item 1', descripton: 'abc'},
 {number: 5, item: 'Item 2', descripton: 'def'},
 {number: 9, item: 'Item 2', descripton: 'ghi'},
 {number: 9, item: 'Item 1', descripton: 'xyz'},
]

how can I get arrays with same parameters of JSON key ('number', 'item'), and get new array like this:

array = [
 [
  {number: 9, item: 'Item 1', descripton: 'abc'},
  {number: 9, item: 'Item 1', descripton: 'xyz'},
 ],
 [
  {number: 5, item: 'Item 2', descripton: 'def'},
 ],
 [
  {number: 9, item: 'Item 2', descripton: 'ghi'},
 ] 
]

I tried using the .sort() and .filter() methods, but I can not get result where I need.

Upvotes: 0

Views: 67

Answers (1)

Spicy Topics
Spicy Topics

Reputation: 11

array = [
 {
  number: 9,
  item: 'Item 1',
  descripton: 'abc'
 },
 {
  number: 5,
  item: 'Item 2',
  descripton: 'def'
 },
 {
  number: 9,
  item: 'Item 2',
  descripton: 'ghi'
 },
 {
  number: 9,
  item: 'Item 1',
  descripton: 'xyz'
 },
];
array.sort((a, b) => {
      if (a.item > b.item) {
        return 1;
      } else {
        return -1;
      }
    });
    console.log(array);

If you run the above js you will get output like this..
[
  { number: 9, item: 'Item 1', descripton: 'xyz' },
  { number: 9, item: 'Item 1', descripton: 'abc' },
  { number: 9, item: 'Item 2', descripton: 'ghi' },
  { number: 5, item: 'Item 2', descripton: 'def' }
]

Upvotes: 1

Related Questions