Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 1
Регистрация: 10.12.2013
Сообщений: 48
1

Сортировка массива объектов по свойству объекта

11.08.2017, 14:52. Просмотров 3488. Ответов 2
Метки нет (Все метки)

Задача: отсортировать массив объектов по свойству объекта
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
const PostApi = {
  posts: [
    {
    id: 1,
    views: 5,
    category: 'lifestyle',
    mainimg: '168.jpg',
    title: 'Lorem1',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 2,
    views: 1,
    category: 'photodiary',
    mainimg: 'https://cs9.pikabu.ru/post_img/2017/08/05/10/1501949794169436235.jpg',
    title: 'Lorem2',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 3,
    views: 25,
    category: 'music',
    mainimg: '174.jpg',
    title: 'Lorem3',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 4,
    views: 3,
    category: 'travel',
    mainimg: '331.jpg',
    title: 'Lorem4',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 5,
    views: 11,
    category: 'travel',
    mainimg: '819.jpg',
    title: 'Lorem5',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 6,
    views: 6,
    category: 'music',
    mainimg: '557.jpg',
    title: 'Lorem6',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 7,
    views: 8,
    category: 'photodiary',
    mainimg: '376.jpg',
    title: 'Lorem7',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 8,
    views: 15,
    category: 'lifestyle',
    mainimg: '785.jpg',
    title: 'Lorem8',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 9,
    views: 20,
    category: 'travel',
    mainimg: '730.jpg',
    title: 'Lorem9',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  },
  {
    id: 10,
    views: 0,
    category: 'photodiary',
    mainimg: '812.jpg',
    title: 'Lorem10',
    content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
  }]
}
необходимо отсортировать по количеству просмотров
вот что пробовал:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let data = PostApi;
 
    function InsertionSort(A) {
      let n = A.length;
      for (let i = 0; i < n; i++) {
        let v = A[i].views,
          j = i - 1;
        while (j >= 0 && A[j].views > v) {
          A[j + 1].views = A[j].views; j--;
        }
        A[j + 1].views = v;
      }
      return A;
    }
 
    let narr = InsertionSort(data.posts)
по просмотрам сортирует, но значения других полей перемешивает
и никак я не могу найти загвоздку, может кто подскажет где ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2017, 14:52
Ответы с готовыми решениями:

Сортировка массива объектов класса по свойству объекта
public class SortByName : IComparer&lt;Order&gt; { public int Compare(Order o1, Order o2) ...

Сортировка массива объектов класса по свойству объекта
есть класс Order в нём есть свойство string Client есть массив Order orders как отсортировать...

как правильно обратится к унаследованному свойству объекта в массиве объектов в качестве параметра функции
всем привет подскажите решение такой ситуации попробую описать проблему:допустим есть класс ...

Как использовать .sort() для сортировки массива объектов по определенному свойству?
Как использовать .sort() для сортировки массива объектов по определенному общему свойству?

2
1211 / 933 / 425
Регистрация: 11.07.2016
Сообщений: 2,562
11.08.2017, 15:00 2
Javascript
1
2
3
PostApi.posts.sort(function(a,b){
  return a.views - b.views;
});
1
1 / 1 / 1
Регистрация: 10.12.2013
Сообщений: 48
11.08.2017, 15:05  [ТС] 3
спасибо, как всегда все оказалось просто до безобразия
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2017, 15:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка объектов функцией sort() по данным объекта
Есть класс Man, при создании его объекта в вектор &quot;люди&quot; должно заносить этот объект. После вызова...

Binding свойства объекта в combobox к свойству другого объекта :)
Всем привет)) У меня есть WPF приложение на котором расположен ComboBox с объектами этого класа ...

Удаление объекта из массива объектов
Здравствуйте. Вопрос вот в чем: есть массив объектов некоторого класса в ArrayList. В определенный...

Удаление объекта из Массива объектов
Приветствую! Подскажите как удалить объект из массива Object mas = cls1.GetObjects(&quot;&quot;);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.