Сортировка объектов AngularJs

Возможно, что-то вроде этого:

SELECT * FROM table WHERE ident='ident23' AND ABS(price - 101.31) < .01;
3
задан Sayed Mohd Ali 18 January 2019 в 14:26
поделиться

2 ответа

Вы можете использовать Array.prototype.sort с простой функцией sort, в которой вы анализируете значение title каждого объекта в массиве как int и сравниваете. Примерно так:

var arr = [{
    "title": "1-Introduction"
  },
  {
    "title": "5-Introduction"
  },
  {
    "title": "20-Introduction"
  },
  {
    "title": "4-Introduction"
  }
];


arr.sort(function(a, b) {
  const aVal = parseInt(a.title.split("-")[0]);
  const bVal = parseInt(b.title.split("-")[0]);
  return aVal - bVal;
});

console.log(arr);

0
ответ дан Tom O. 18 January 2019 в 14:26
поделиться

Просто извлеките эти числовые значения и пусть фильтр orderBy angularjs сделает всю работу за вас

JS

  $scope.getNumber = function(row){
    var value = row.title.split("-")[0];
    return parseInt(value);
  };

html [115 ]

<div ng-repeat="item in data | orderBy:getNumber:false">{{item.title}}</div>

также orderBy принимает второй параметр (true / false) для упорядочивания asc / desc

Демо

0
ответ дан NTP 18 January 2019 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: