js数组sort方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    var products = [ { name: "Grapefruit", calories: 170, color: "red", sold: 8200 },
                     { name: "Orange", calories: 160, color: "orange", sold: 12101 },
                     { name: "Cola", calories: 210, color: "caramel", sold: 25412 },
                     { name: "Diet Cola", calories: 0, color: "caramel", sold: 43922 },
                     { name: "Lemon", calories: 200, color: "clear", sold: 14983 },
                     { name: "Raspberry", calories: 180, color: "pink", sold: 9427 },
                     { name: "Root Beer", calories: 200, color: "caramel", sold: 9909 },
                     { name: "Water", calories: 0, color: "clear", sold: 62123 }
                   ];

    function compareSold(colaA, colaB){
        if (colaA.sold > colaB.sold){
            return 1;
        } else if (colaA.sold === colaB.sold){
            return 0;
        } else {
            return -1
        }
    }

    products.sort(compareSold);
    console.log(products);
    //传递给sort比较函数需要根据比较结果返回
    //    如果第一项>第二项,返回大于0
    //    如果第一项=第二项, 返回0
    //    反之,返回小于0

    </script>
</head>
<body>

</body>
</html>

原文地址:https://www.cnblogs.com/themost/p/9352859.html

时间: 2024-10-09 09:39:21

js数组sort方法的相关文章

JS 数组及其方法浅析

近来闲来无事,小码哥突发奇想,手一哆嗦,就把javascript中的数组及其方法小小总结了一下! 在JS里我们很抽象的理解万物皆对象,这大概也是,我们现在在写Js代码的时候,都善于用面向对象的方式写程序的根由吧....不多说,数组Array也是对象无疑了! 首先,我们肯定应该知道什么是数组?其又是如何定义的?都有哪些优点?这都是我们关心的,,, 数组定义:数组说白了就是数据的集合,在内存中,是一块连续内存的地址:JS中数组分为一维数组和多维数组. 定义方式: 1.直接量定义:var Arr=[e

JavaScript数组sort()方法小结

sort语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函数. 由于sort方法是先将数组元素转换为字符串进行比较,根据字符串首字符的ASCII码排序进行比较,所以有时候不能满足我们对数组数字集合的排序要求,但是sort()方法可以采用函数,利用冒泡法对数组进行排序,我个人的理解是如果要对其进行排序给定函数有以下两种格式: Array.sort(function(a,b){ a-b; }) 此种方法实现由小到大排序. Array.sort(fun

JS 数组迭代方法

js中数组迭代方法有五种 some() , every(), filter(), forEach(),map(),传入这些方法的函数会接收三个参数(数组项的值,该项在数组中的位置,数组对象本身) var items = [9,67,34,25,56]; //如果items中的所有项都大于9返回true否则返回false 全部满足条件才行 var everyResult = items.every(function(item,index,array){ return (item>9); }); a

js中sort()方法冒泡排序模拟

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

浅谈js的sort()方法

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码(字符串Unicode码点)的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 怎么获取字符串Unicode编码了? charAt和charCodeAt charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数.方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的

JS中sort()方法原理及使用

sort()  方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串UniCode码.因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较. 语法:arrayObject.sort(sortby); 参数sortby  可选,用来规定排序的顺序,但必须是函数. 例一:按照字母顺序排序 例二:还是按照字母进行排序 纳尼,这次排序似乎没有得到想要的结果...... 如果要得到自己想要的结果,不管是升序还是降序,就需要提供比

js数组sort排序的理解

javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列. example1: example2: sort() 方法可以接受一个方法为参数 ,这个方法有两个参数.分别代表每次排序比较时的两个数组项.sort()排序时每次比较两个数组项都会执行这个参数,并把两个比较的数组项作为参数传递给这个函数.当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换. example3:降序排列 example4:升序排列 另外,可以直接把一个无名函数直接放

数组sort方法源码解析

我们提到数组排序都会想到数组的sort方法,这个方法用起来的确很方便,其原理还是用到了我们的冒泡排序,sort函数接受一个参数,参数为一个函数,如果不指定参数,则按照则按unicode码顺序排列. var arr=[7,3,6,1,5,12]; console.log(arr.sort());//[1, 12, 3, 5, 6, 7] console.log(arr.sort(function(a,b){ return a-b; })); //[1, 3, 5, 6, 7, 12] 其实源码实现

js 数组去重方法总结

var arr = [1, 1, 'true', 'true', true, true, 15, 15, false, false, undefined, undefined, null, null, NaN, NaN, 'NaN', 'NaN', 0, 0, 'a', 'a', {}, {}]; /* * ES3 的方法 */ // 方法一 思路:新建空数组,利用双层for循环,逐一取出传入数组的项与新数组中的每一项做对比,如果没有相同的则将该项插入新数组中,如果对比项相同则跳出当前循环回到父