js 自带的sort() 方法全面了解

1. 方法概述

Array的sort()方法默认把所有元素先转换为String再根据Unicode排序,

sort()会改变原数组,并返回改变(排序)后的数组 。

2. 例子

2.1  

如果没有提供自定义的方法, 数组元素会被转换成字符串,并返回字符串在Unicode编码下的顺序比较结果

var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries']

var scores = [1, 10, 2, 21];
scores.sort(); // [1, 10, 2, 21]
// Watch out that 10 comes before 2,
// because '10' comes before '2' in Unicode code point order.

var things = ['word', 'Word', '1 Word', '2 Words'];
things.sort(); // ['1 Word', '2 Words', 'Word', 'word']
// In Unicode, numbers come before upper case letters,
// which come before lower case letters.

2.2 利用map来排序

// the array to be sorted
var list = ['Delta', 'alpha', 'CHARLIE', 'bravo'];

// temporary array holds objects with position and sort-value
var mapped = list.map(function(el, i) {
 return { index: i, value: el.toLowerCase() };
})

// sorting the mapped array containing the reduced values
mapped.sort(function(a, b) {
 return +(a.value > b.value) || +(a.value === b.value) - 1;
});

// container for the resulting order
var result = mapped.map(function(el){
 return list[el.index];
});

alert(result);

参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

以上这篇js 自带的sort() 方法全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • js中array的sort()方法使用介绍

    或许你一直在用javascript中的array的sort. 或许你一直相信它会给你正确的结果. 至少我曾经也是这样认为的,直到有一天,我看到了如下的代码 : 复制代码 代码如下: [5,10,1].sort(); 或许结果有点出人意料.结果如下: 复制代码 代码如下: [1,10,5] 仔细深究之后,发现原来默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式. 换言之就是10 中的这个 1 导致了上面代码的错误. 当然,解决方法有很多,可以给sort方法中传入回调函数. 复制代

  • js中数组排序sort方法的原理分析

    本文实例分析了js中数组排序sort方法的原理.分享给大家供大家参考.具体分析如下: 最近在百度的项目中要用到对数组进行排序,当然一开始自然想到了数组的sort方法,这方法应用非常简单,大致如下: 复制代码 代码如下: window.onload=function(){         var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];         var arr2=["George","John","

  • JavaScript中用sort()方法对数组元素进行排序的操作

    JavaScript数组sort()方法排序数组的元素. 语法 array.sort( compareFunction ); 下面是参数的详细信息: compareFunction : 指定一个函数,定义排序次序.如果省略,数组字典顺序排序. 返回值: 返回一个排序的数组 例子: <html> <head> <title>JavaScript Array sort Method</title> </head> <body> <s

  • js数组Array sort方法使用深入分析

    javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下: 复制代码 代码如下: var arrA = [6,2,4,3,5,1]; arrA.sort(); document.writeln(arrA); //结果是:1,2,3,4,5,6 sort() 方法可以接受一个 方法为参数 ,这个方法有两个参数.分别代表每次排序比较时的两个数组项.sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这

  • javascript中sort() 方法使用详解

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

  • JS中的数组的sort方法使用示例

    复制代码 代码如下: var values=[0,1,5,10,15]; values.sort(); alert(values);// 输出0,1,10,15,5 这是因为sort会调用每一项的toString方法进行比较,"10"比"5"小,故在前面. 要实现对数值进行排序,则需要定义一个比较函数,并将该函数传入sort. 复制代码 代码如下: function compare(value1,value2){ if(value1<value2){ retu

  • js中的数组Array定义与sort方法使用示例

    Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数组 var ary = new Array(5): 2:使用Json语法,var ary = [1,3,4]: 数组排序: 例: 复制代码 代码如下: function sort(){ var ary=[11,12,3,5,29]; ary.sort();//按照字符编码排序11,12,29,3,5; alert(ary.toString()); ary.sort(function(v1,v2

  • javascript中数组的sort()方法的使用介绍

    复制代码 代码如下: <html> <head> <title>数组的sort()方法</title> <script> /* sort() 1.没有产生副本,直接引用原数组 2.如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序, 说得更精确点,是按照字符编码的顺序进行排序. 要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 3.如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值, 然后返

  • Javascript数组的排序 sort()方法和reverse()方法

    其中: 1.JavaScript的sort()中如果没有指定比较函数,则默认会按照字符的编码顺序进行升序排序.也就是说如果我们想要对数值进行排序得到的不一定是我们想要的结果. 2.Javascript的reverse()将数组中的元素逆序. 先看看上面的第一点,如果有一个数组arr=[1,6,3,7,9],使用arr.sort()后,数组的顺序为1,3,6,7,9,得到了我们想要的结果. 再看看下面的一个数组排序:arr=[3,1,16,34,30],如果执行arr.sort()后是不是还是会得

  • js 自带的sort() 方法全面了解

    1. 方法概述 Array的sort()方法默认把所有元素先转换为String再根据Unicode排序, sort()会改变原数组,并返回改变(排序)后的数组 . 2. 例子 2.1 如果没有提供自定义的方法, 数组元素会被转换成字符串,并返回字符串在Unicode编码下的顺序比较结果 var fruit = ['cherries', 'apples', 'bananas']; fruit.sort(); // ['apples', 'bananas', 'cherries'] var scor

  • js 自带的 map() 方法全面了解

    1. 方法概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组. 2. 例子 2.1 在字符串中使用map 在一个 String  上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组: var map = Array.prototype.map var a = map.call("Hello World", function(x) { return x.charCodeAt(0); }) // a的值为[72, 101, 10

  • 深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法

    Array.prototype.sort方法是对数组进行排序, 该方法带一个函数参数,用来指定排序的规则. 我们先来看看sort 的简单应用: var arr=[2,1,3,4]; alert(arr.sort())  // [1,2,3,4] 从小到大排列 //现在由大到小排列  得到 [4,3,2,1] alert(arr.sort(function(left,right){return left>right?-1:1})) //这里,sort方法通过参数函数的返回值 1或者-1来决定是顺排

  • Js中sort()方法的用法

    返回一个元素已经进行了排序的 Array 对象. arrayobj.sort(sortfunction)  参数 arrayObj  必选项.任意 Array 对象.  sortFunction  可选项.是用来确定元素顺序的函数的名称.如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列.  说明 sort 方法将 Array 对象进行适当的排序: 在执行过程中并不会创建新的 Array 对象. 如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之

  • js实现带关闭按钮始终显示在网页最底部工具条的方法

    本文实例讲述了js实现带关闭按钮始终显示在网页最底部工具条的方法.分享给大家供大家参考.具体如下: 这是一款很实用的代码,给网页加入一个始终显示在浏览器窗口底部的工具栏,可以在上面放上公告,联系人等等信息,此代码的工具条还带有关闭按钮,可以随时关闭 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

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

    本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法.分享给大家供大家参考.具体分析如下: 在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort().sort方法接受一个参数--Function,function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行比较,如果是Number类型则比较值的大小.如果比较的函数中返回1则两个元素交换位置,0和-1不交换位置.先看一个例

  • js模拟实现Array的sort方法

    JavaScript的Array对象有一个sort方法,用于实现对数组元素的排序,该方法默认按照数组项ASCII 字符顺序升序排列.   如[6,7,9,1,-1].sort();执行后数组变为[-1,1,6,7,9]. 对于需要降序排列或非字符串排序,该方法就不能很好的执行了. 当然,sort有一个可选参数,它能帮我们解决这个问题,通过为sort传入一个函数,sort根据函数返回值进行排序. 数组为该函数默认传入数组中的两个元素,如传入a,b,如果函数返回值大于0,则排序方式为b,a,如果返回

  • js采用concat和sort将N个数组拼接起来的方法

    本文实例分析了js采用concat和sort将N个数组拼接起来的方法.分享给大家供大家参考,具体如下: 这是某个大型企业的面试题扩展得来的,只是一种解法,但是无法确定是否高效,不过效果确实是实现了! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htm

随机推荐