首页编程java编程javascript array sort JavaScript 数组

javascript array sort JavaScript 数组

编程之家2026-05-31699次浏览

很多朋友对于javascript array sort和JavaScript 数组不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

javascript array sort JavaScript 数组

js使用Array.prototype.sort()对数组对象排序的方法

本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法。分享给大家供大家参考。具体分析如下:

在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort()。sort方法接受一个参数——Function,function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode

code进行比较,如果是Number类型则比较值的大小。如果比较的函数中返回1则两个元素交换位置,0和-1不交换位置。先看一个例子:

复制代码

代码如下:var

arr

javascript array sort JavaScript 数组

=

[3,

5,

2,

1];

//

javascript array sort JavaScript 数组

从小到大排序

arr.sort(function

(a,

b)

{

return

a

>

b

?

1

:

-1;

});

//

得到的结果:[1,

2,

3,

5]

那么回到我们的主题,如果是对一个数组对象进行排序,该怎么写呢?其实原理和上面一样,如:

复制代码

代码如下:var

arr

=

[

{

a

:

2,

b

:

3.2},

{

a

:

3,

b

:

1.2},

{

a

:

4,

b

:

2.2},

{

a

:

6,

b

:

1.2},

{

a

:

5,

b

:

3.2}

]

///

从小到大按属性b排序

arr.sort(function(x,

y){

return

x.b

>

y.b

?

1:-1;

});

x和y就是arr的一个元素,即一个对象,所以直接比较两个对象的属性即可。

上面的例子中,最小的元素中有重复,如果需求是:先按b属性从小到大排序,如果最小中有重复则再按a属性排序,那应该怎么写呢?

在排序的时候,先按b属性排序,如果x.b的大于y.b则将x移到y的右边,如果x.b等于y.b则再通过x.a和y.a进行比较,所以代码如下:

复制代码

代码如下:arr.sort(function

(x,

y)

{

if

(x.b

>

y.b)

{

return

1;

}

else

if

(x.b

===

y.b)

{

return

x.a

>

y.a

?

1

:

-1;

}

else

if

(x.b

<

y.b)

{

return

-1;

}

})

希望本文所述对大家的javascript程序设计有所帮助。

javascript 对数组从小到大进行排序怎么做

1.如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较如果想按照其他标准进行排序,就需要提供比较函数CodeGo.net,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值

•若a小于b,在排序后的数组中a应该出现在b之前,则返回一个小于0的值•若a等于b,则返回0•若a大于b,则返回一个大于0的值<scripttype="text/javascript">

functionsortNumber(a,b)

{

returna-b

}

vararr=newArray(6)

arr[0]="10"

arr[1]="5"

arr[2]="40"

arr[3]="25"

arr[4]="1000"

arr[5]="1"

document.write(arr+"<br/>");

document.write(arr.sort(sortNumber));

</script>

javascript中的冒泡排序法

冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;

首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来,变成43215

所以,一层循环的效果就是挑出最大的一个数字5,冒泡到最后面。但是还要挑出第二大,第三大的数字,等等。所以一层循环根本就不够用,必须再套一层才行。像这个例子,五个数字,起码要进行四轮循环才行。至于为什么要this.length-i,是因为第一次比较五个数字,第二个只要比较前四个就行了,第五个肯定是最大的了。。

var array= [5, 4, 3, 2, 1];

var temp= 0;

for(var i= 0; i< array.length; i++)

{

for(var j= 0; j< array.length- i; j++)

{

if(array[j]> array[j+ 1])

{

temp= array[j+ 1];

array[j+ 1]= array[j];

array[j]= temp;

}

}

}

console.log(array);

关于本次javascript array sort和JavaScript 数组的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

python编程题,学python前需要哪些基础男气功武器(DNF男气功带什么武器)