如何对数组中的所有元素进行排序,其中函数仅比较2个元素?

时间:2019-06-19 06:55:41

标签: arrays angular sorting return pipe

我使用此代码能够对名称数组进行排序。该代码对a和b进行检查,并返回-1、0或1。我可以理解这些值将名称按顺序排列,但是我无法弄清楚的是,这段代码是如何确保其中的所有元素的?对数组进行评估和排序以获得完整的排序列表。

flatMap

2 个答案:

答案 0 :(得分:0)

考虑一个Array

    array = [{'make': 'BMW'}, {'make': 'Audi'}]

    array.sort((a: any, b: any) => {
       if (a[field] < b[field]) { // field will be the property of object to sort on
           return -1; // Sort Ascending 'a' < 'b' true then it'll enter this
       } else if (a[field] > b[field]) {
           return 1; // If this is -1 and the above is 1, Sort descending
       } else {
           return 0; // Default return value (no sort)
       }
    });

答案 1 :(得分:0)

sort()函数比较两个值,将其发送到compare函数,然后根据返回的值(负,零,正)对值进行排序。

  1. 如果结果为负,则a排在b之前。
  2. 如果结果为正,则b排在a之前。
  3. 如果结果为0,则不会更改两个值的排序顺序。

为了更好地理解,您可以访问w3school.com链接:- [https://www.w3schools.com/js/js_array_sort.asp][1]