gpt4 book ai didi

javascript - JavaScript 中的冒泡排序 : Alert Missing problem

转载 作者:行者123 更新时间:2023-12-01 00:10:04 25 4
gpt4 key购买 nike

这是我要完成的作业:

This file should contain a text box named mydata that collects the numbers separated by commas.
A button named "databtn" is used to invoke a javascript function named bubble_sort(). This function does not accept any arguments.
The data must be sorted and displayed as an alert as indicated in the snapshot.

Required Output:enter image description here

这是我尝试过的:

function swap(arr,first,second){
var temp=arr[first];
arr[first]=arr[second];
arr[second]=temp;
}

function bubble_sort() {
var str=document.getElementById("input").value;
var arr;
if(str.length===0){
arr=new Array;
}
else{
arr=str.match(/\d+/g).map(Number);
}
var len=arr.length,
i,j,stop;
for(i=0;i<len;i++){
for(j=0,stop=len-i;j<stop;j++){
if(arr[j]>arr[j+1]){
swap(arr,j,j+1);
}
}
}
alert(arr)
}
<form>
Enter data to sort : <input type="text" name="mydata" id="input" ><br>
<input type="button" id="data" onclick="bubble_sort()"
name="databtn" value="Sort Data" />
</form>

我得到了正确的输出(负数情况除外),但是,它显示“失败警报丢失”并且测试用例失败。
我不明白为什么,我将不胜感激任何建议,谢谢!

最佳答案

正如评论中提到的,您的代码不能很好地处理无效输入,即当您的输入中根本没有数字时(“this_is_a_test”)。

所以改变:

if(str.length===0){
arr=new Array;
}
else{
arr=str.match(/\d+/g).map(Number);
}

至:

arr=(str.match(/-?\d+/g) || []).map(Number);

|| [] 处理根本没有数字的情况。在这种情况下,从 match 返回的 null 将被替换为空数组 ([])。

正则表达式中的 -? 还可以正确匹配负整数。

关于javascript - JavaScript 中的冒泡排序 : Alert Missing problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com