在 JavaScript 中检查一个数组是递减、递增还是未排序


我们需要编写一个 JavaScript 函数来接收数字数组。此函数应检查数组中的数字是按照升序、降序还是没有特定顺序排列的。

如果数组中仅包含一个元素,那么我们应该返回一条消息,指出元素数量不够。

并且如果数组的所有元素都相等,那么我们应该返回一条消息,指出所有元素都相等。

示例

其代码如下 −

const arr1 = [7, 2, 1, 3, 2, 1];
const arr2 = [1, 1, 2, 3, 7, 7];
const determineOrder = arr => {
   if(arr.length < 2){
      return 'not enough items';
   };
   let ascending = null;
   let nextArr = arr.slice(1);
   for(var i = 0; i < nextArr.length; i++) {
      if(nextArr[i] === arr[i]){
         continue;
      }else if(ascending === null) {
         ascending = nextArr[i] > arr[i];
      }else if (ascending !== nextArr[i] > arr[i]){
         return 'unsorted';
      };
   }
   if(ascending === null){
      return 'all items are equal';
   };
   return ascending ? 'ascending' : 'descending';
};
console.log(determineOrder(arr1));
console.log(determineOrder(arr2));
console.log(determineOrder([1, 1, 1, 1]));
console.log(determineOrder([7, 2, 2, 1]));

输出

控制台中的输出 −

unsorted
ascending
all items are equal
descending

更新于: 10-10-2020

1K+ 查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.