我必须查看给定的数组 (arr) 是否按升序排列。 (只给出正整数)
我创建了一个数组来比较它。然后循环输入 arr 以查看每次迭代是否匹配。或者至少那是我的目标。
还尝试了一个计数器变量,它只在每次 sorted[i] == arr[i] 为真时将计数加一。然后,如果计数与 sorted.length 相同,则为真。然而,这不起作用的事实让我觉得我在某个地方犯了一个更根本的错误。
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
移动到函数的末尾,否则您将在第一次匹配后返回。
关于javascript - 定义替换/更改字符串的位置时出现异常字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292484/