Javascript 定义替换/更改字符串的位置时出现异常字符
我必须查看给定的数组(arr)是否按升序排列。(仅给出正整数) 我创建了一个数组来比较它。然后循环输入arr,查看每个迭代是否匹配。至少这是我的目标 我们还尝试了一个计数器变量,该变量仅在每次排序[i]==arr[i]为真时向计数加一。然后,如果计数与sorted.length相同,则为true。然而,事实上这并没有起作用,这让我觉得我在某个地方犯了一个更基本的错误Javascript 定义替换/更改字符串的位置时出现异常字符,javascript,arrays,compare,Javascript,Arrays,Compare,我必须查看给定的数组(arr)是否按升序排列。(仅给出正整数) 我创建了一个数组来比较它。然后循环输入arr,查看每个迭代是否匹配。至少这是我的目标 我们还尝试了一个计数器变量,该变量仅在每次排序[i]==arr[i]为真时向计数加一。然后,如果计数与sorted.length相同,则为true。然而,事实上这并没有起作用,这让我觉得我在某个地方犯了一个更基本的错误 function inAscOrder(arr) { let sorted = arr.sort((a, b) => a
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;
}
}
}
记录器功能(arr){
让sorted=arr.sort((a,b)=>a-b);
for(设i=0;i
排序
在适当的位置修改数组,所以您要比较两个相同的数组。您需要首先在阵列上使用.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;
}
记录器功能(arr){
for(设i=0;iarr[i+1]){
返回false;
}
}
返回true;
}
在哪里替换/更改字符串?排序
变异数组。因此,arr===sorted
。而且,在索引0Areturn
语句立即退出函数后,此函数将return
返回。感谢@Pointy这是基本错误:)如果您有大量数组,此函数将更快这是优化的代码。您可以删除以前的答案。如果您希望包含,请在回答中进行编辑。请在回答中添加一些解释,以帮助其他人更好地理解。只有代码的回答被认为是不礼貌的,它可能无法帮助OP理解您试图帮助解决的问题。