typescript 按顶级属性值排序对象数组。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 按顶级属性值排序对象数组。相关的知识,希望对你有一定的参考价值。

/**
 * Order an array alphabetically by property
 *
 * @param {Array} items The array of objects to sort
 * @param {String} property The property to sort by
 * @param {Boolean} isDescending A flag determining if the array should be sorted ascending or
 * descending
 * @return {Array} sortedArray The sorted array
 */
export default function orderArrayByProperty(items: any[], property: string, isDescending: boolean = true): any[] {
  return items.sort((a: string, b: string) => {
    const nonAlphaRegex = /\W+/g;

    // Check for existence and lowercase
    const aProp = a[property] ? a[property].toLowerCase().replace(nonAlphaRegex, '') : null;
    const bProp = b[property] ? b[property].toLowerCase().replace(nonAlphaRegex, '') : null;

    // Sort ascending or descending
    const aIsFirstReturn = isDescending ? -1 : 1;
    const bIsFirstReturn = isDescending ? 1 : -1;

    if (aProp < bProp) {
      // Sort ascending
      return aIsFirstReturn;
    } else if (aProp > bProp) {
      // Sort descending
      return bIsFirstReturn;
    } else {
      // Do not sort
      return 0;
    }
  });
}

以上是关于typescript 按顶级属性值排序对象数组。的主要内容,如果未能解决你的问题,请参考以下文章

数组列表按布尔值排序,然后按日期 JavaScript / TypeScript

按字符串属性值对对象数组进行排序

Javascript - 如何按 3 种不同的属性类型对对象数组进行排序? (字符串、整数、布尔值)

JavaScript对象数组如何按指定属性和排序方

带有多个属性的对象的打字稿排序数组

在Java中按属性值对对象ArrayList进行排序