有人能帮我找出错误吗?我的主要目标是,当我们输入一个数组时,得到的结果与下面所示的相同,Input
{-5,-4,10,12,13,4,5,-8,-6}
输出
{10,12,13,4,5,-5,-4,-8,6}
我在这里附上了我的完整代码。我没有输出。enter image description here
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--
Positive Numbers one side and negetive numbers other side
-->
<title>RK1</title>
</head>
<body>
<H3>RK1</H3>
<form.submit()>
<p>Enter Array</p>
<input type="text" id="text" placeholder="Enter Text"><br>
<p>Changed array</p>
<p id="text2"></p>
<p>plus Array</p>
<p id="text3"></p>
<button onclick="foo()">Give Answer</button>
</form>
<script type="text/javascript">
function foo(){
var arrch= document.getElementById("text").value.spilt(" ").map(Number);
var dlina=arrch.length;
var new_arr =[];
var new_arr2=[];
var k=0;
var summa=0;
var n=0;
for(var i=0;i<dlina;i++){
if(arrch[i]>0){
summa+=arrch[i];
new_arr[n]=arrch[i];
n++
}
else if(arrch[i]<0){
new_arr2[k]=arrch[i];
k++
}
}
new_arr = new_arr.join(" ")
new_arr2 = new_arr2.join(" ")
document.getElementById("text2").innerHTML = new_arr + " " +new_arr2;
document.getElementById("text3").innerHTML = summa;
}
</script>
</body>
</html>
2条答案
按热度按时间kcwpcxri1#
如果只想将负数排序到数组的末尾,可以根据数字的符号进行
sort
。您可以使用reduce
对数组求和:下面是您的代码的修改版本,其中包含了这些更改(@EricFortis更正了
split
中的错误):bpsygsoo2#
你可以这样编码。。。
a