定义在哪里替换 /更改字符串时的不寻常字符



我必须查看给定的数组(arr(是否按顺序排列。(仅给出的正整数(

我创建了一个将其与之相比的数组。然后通过输入ARR循环以查看每个迭代是否匹配。或至少那是我的目标。

还尝试了一个计数器变量,该变量仅每次排序[i] == arr [i]是正确的。然后,如果计数与排序相同。长度为真。但是,这没有起作用的事实使我认为我在某个地方犯了一个更根本的错误。

function inAscOrder(arr) {
  let sorted = arr.sort((a, b) => a - b);
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === sorted[i]) {
      return true;
    } else {
      return false;
    }
  }
}

sort将数组修改到位,因此您要比较两个相同的数组。您需要首先在数组上使用.slice()来创建副本。

另外,您需要将return true移至功能末尾,否则您将在第一次比赛后返回。

function inAscOrder(arr) {
  return JSON.stringify(arr) === JSON.stringify(arr.concat().sort()));
}

您不需要对数组进行排序即可检查是否对其进行排序。在每个连续的元素上循环循环,并检查第一个元素是否小于第二;如果您找到了这对不正确的一对,则不会对数组进行排序。

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

最新更新