JavaScript数字数组怎么按数字大小排序?

发布网友 发布时间:2022-04-22 23:28

我来回答

3个回答

热心网友 时间:2022-04-07 08:01

先写上我们的示例代码,定义了一个数组arr,数组包括有几个字母,不按顺序的,要对数组进行排序,直接调用sort方法。再加上一些输出语句,console.log是指在浏览器的调试控制台里输出内容。

运行页面,我们在控制台里看下结果,如图,数组调用sort方法后,就按字母的升序做好排序了。

修改下代码,把数组内容从字符串改成数字,然后再调用sort方法。

修改后,运行页面,再看下结果。

数组排序都是按字符串来排序的,而不管数组内容是数字还是字符串。

修改下sort排序方法,把刚才定义的方法名传进来。

运行页面,可以看到现在的数组就是按数字从小到大排序的。

好,Javascript中的数字数组排序非常简单,JS本身提供了内置的排序方法,直接调用就可以了。

1.var arr = [1, 20, 49, 32, 43, 69];

2.arr.sort();

3.console.log(arr); // [1, 20, 32, 43, 49, 69]

热心网友 时间:2022-04-07 09:19

Javascript中的数字数组排序方法:

var arr = [1, 20, 49, 32, 43, 69];
arr.sort();
console.log(arr); // [1, 20, 32, 43, 49, 69]

还有一种更加灵活的写法:


arr.sort(function(a, b){
return a - b;
});
console.log(arr); // [1, 20, 32, 43, 49, 69]

如果想倒序也很简单,交换下return中a、b的位置就可以了:


arr.sort(function(a, b){
return b - a;
});
console.log(arr); // [69, 49, 43, 32, 20, 1]

热心网友 时间:2022-04-07 10:53

JavaScript数字数组按数字大小排序代码如下:

<html>

<head>

<title>数组对象的sort()方法</title>

<script language="javascript" type="text/javascript">

<!--

var arr = [39,11,3,9,1,77];

document.write("原数组元素为:" + arr.toString() + "<br>");

arr.sort();

document.write("按字符编码排序:" + arr.toString() + "<br>");


//正序排序

function ascOrder(x,y)

{

if (x>y)

{

return 1;

}

else

{

return -1;

}

}

//倒序排序

function descOrder(x,y)

{

if (x>y)

{

return -1;

}

else

{

return 1;

}

arr.sort(ascOrder);

document.write("按数字正序排序:" + arr.toString() + "<br>");

arr.sort(descOrder);

document.write("按数字倒序排序:" + arr.toString() + "<br>");

-->

</script>

</head>

<body>

</body>

</html>

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com