Skip to content

[FEATURE]: Function for checking if array is sorted should check whether the array is sorted in both ascending and descending order. #275

Description

@codeme254

Motivation

I have been looking at the code for checking whether an array is sorted and this is the current implementation:

export function isSortedArray(arr: number[]): boolean {
  for (let i = 0; i < arr.length - 1; i++) {
    if (arr[i] >= arr[i + 1]) {
      return false
    }
  }
  return true
}

The code is working fine, but currently, it is only checking whether the passed array is sorted in ascending order, should we want to check whether the array is sorted in descending order then it will not be of much help.

Examples

Currently, the function checks whether an array is sorted, taking a single parameter: the array to evaluate. To enhance its functionality, I propose adding a second parameter that specifies the order to check for sorting.
The second parameter should be a string such as:

  • asc to check whether the array is sorted in ascending order.
  • desc to check whether the array is sorted in descending order.

Here are some example:

isSortedArray([1, 2, 3, 5, 9], 'asc') // true
isSortedArray([1, 2, 3, 5, 9], 'desc') // false
isSortedArray([9, 5, 3, 2, 1], 'desc') // true

Possible workarounds

No response

Activity

  1. appgurueu commented on Nov 16, 2024

    @appgurueu
    Contributor

    I don't think that's a good idea. Rather, the function should just take an optional comparator, e.g. like Array.sort.

  2. codeme254 commented on Nov 17, 2024

    @codeme254
    Author

    So, your idea is that the function should now be called with two parameters, the array to be sorted and and a callback function which will be the comparator?

    isSortedArray([3, 2, 1], (a, b) => b - a); // true
    isSortedArray([1, 2, 3], (a, b) => b - a); // false
  3. appgurueu commented on Nov 17, 2024

    @appgurueu
    Contributor

    So, your idea is that the function should now be called with two parameters, the array to be sorted and and a callback function which will be the comparator?

    isSortedArray([3, 2, 1], (a, b) => b - a); // true
    isSortedArray([1, 2, 3], (a, b) => b - a); // false

    Yes (your example should have a different comparator in the second line btw). But the comparator should default to something sensible (such that it checks whether the array is sorted ascendingly by default, just like Array.sort sorts ascendingly by default).

  4. RohanGoparaju028 commented on May 29, 2025

    @RohanGoparaju028

    export function isSortedArray(a:Array) : boolean {
    if(a.length >= 2) {
    if(a[0] < a[1]) {
    return true;
    }
    }
    return false;
    }
    hey can u see this code.

  5. RohanGoparaju028 commented on May 29, 2025

    @RohanGoparaju028

    I am running with an assumption that the array is sorted but the function is there to find the sorted array is in ascending or decending order

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions