Synacs
@Synacs
Начинающий

Сортировка в JavaScript многомерных массивов по одному из параметров?

Привет,
Я не знаю как реализовать сортировку многомерных массивов.
есть массив:
var item_unitaz = [
{'item_id':1, 'article':'DE23421312', 'name':'Привет','type':2},
{'item_id':2, 'article':'DE12421442', 'name':'Пока','type':32},
{'item_id':3, 'article':'DE78677833', 'name':'Воробей','type':68},
{'item_id':4, 'article':'DE23442235', 'name':'Петух','type':45}];

Нужно отсортировать данный массив по значению Type в правильном порядке (2, 32, 45, 68)

Всё до чего я додумался, так это:
for (var i = 0; i < item_unitaz.length; i++)
    {
        console.log(item_unitaz[i].type.sort(function(a,b){return a - b}));
    }

Само собой это не сработало...
Помогите пожалуйста!
  • Вопрос задан
  • 2061 просмотр
Решения вопроса 4
BenderLib
@BenderLib
JS
var item_unitaz = [
{'item_id':1, 'article':'DE23421312', 'name':'Привет','type':2},
{'item_id':2, 'article':'DE12421442', 'name':'Пока','type':32},
{'item_id':3, 'article':'DE78677833', 'name':'Воробей','type':68},
{'item_id':4, 'article':'DE23442235', 'name':'Петух','type':45}];

function compareUnitaz(a, b) {
     return a.type - b.type;
}
item_unitaz.sort(compareUnitaz)
Ответ написан
Комментировать
@alexalexes
Как говорится, смотри в учебнике.
Объекты могут быть отсортированы по значению одного из своих свойств.

var items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic' },
  { name: 'Zeros', value: 37 }
];
items.sort(function (a, b) {
  if (a.name > b.name) {
    return 1;
  }
  if (a.name < b.name) {
    return -1;
  }
  // a должно быть равным b
  return 0;
});
Ответ написан
Комментировать
pavelkarinin
@pavelkarinin
Full Stack Web Developer
var item_unitaz = [
{'item_id':1, 'article':'DE23421312', 'name':'Привет','type':2},
{'item_id':2, 'article':'DE12421442', 'name':'Пока','type':32},
{'item_id':3, 'article':'DE78677833', 'name':'Воробей','type':68},
{'item_id':4, 'article':'DE23442235', 'name':'Петух','type':45}];

function compareUnitaz(a, b) {
  if (a.type > b.type) return 1;
  if (a.type < b.type) return -1;
  return 0;
}

item_unitaz.sort(compareUnitaz);
Ответ написан
Комментировать
Fzero0
@Fzero0
Вечный студент
const sortArray = (array, pole) => {
	return array.sort((a,b)=> {return (a[pole] > b[pole]) ? 1 : ((b[pole] > a[pole]) ? -1 : 0);} ); 
}

console.log(sortArray(item_unitaz,"type"))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ZZiliST
Изучаю JS, CSS, HTML, PHP
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
'use strict';
    var table = [
      { ll: 5, ss: 10 },
      { ll: 55, ss: 10 , aa:25},
      { ll: 100, ss: 10, aa:{a:1,b:2} },
      { ll: 70, ss: 10 }
    ];

    table.sort(function (a, b) {
      return a.ll < b.ll
    });

Подробнее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы