JS实现给数组对象排序的实例代码

  • 时间:
  • 4551人关注

这篇文章主要介绍了JS实现给数组对象排序的方法,结合实例形式分析了javascript数组对象排序相关实现方法与操作注意事项,需要的朋友可以参考下,另外这篇文章主要知识点是关于JS、数组对象、排序、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:
  • 编辑整理:贡若蕊
  • 教程字数:697字节
  • 阅读时间:大概20分钟
  • 下载本教程(DOC版)
  • 《Vue.js前端开发基础与项目实战》项目源码
  • JSON-handle
  • Quick Javascript Switcher
  • Android实现城市列表字母排序
  • Vue.js devtools
  • 本文实例讲述了JS实现给数组对象排序的方法。分享给大家供大家参考,具体如下:

    JS中给数组对象排序

    假设有一个对象数组,我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接收2个参数,即要比较的值。

    可是,我们需要一种方式指明按照哪个属性来排序。

    要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数。

    function createComprisonFunction(propertyName){
        return function(object1,object2){
            var value1 = object1[propertyName];
            var value2 = object2[propertyName];
            if(value1 < value2){
                return -1;
            }else if(value1 > value2){
                return 1;
            }else{
                return 0;
            }
        }
    }
    //上面的函数可以像在下面的列子中这样使用
    var data = [{name:"Zachary",age:28},{name:"Nicholas",age:29}];
    data.sort(createComprisonFunction("name"));
    console.log(data[0].name); //Nicholas
    data.sort(createComprisonFunction("age"));
    console.log(data[0].name); //Zachary
    
    

    运行结果:

    JS实现给数组对象排序的方法分析

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


    上一篇:JS中批量给元素绑定事件过程中的相关问题使用闭包解决详解

    下一篇:JS中serialize()多表单数据提交应用实例

    相关内容

    • java与jsp的区别

      java是一种语言类似于C语言等的编程语言,而JSP(JavaServer Pages)是一种动态网页技术标准。 JSP和JAVA的区别,JSP算是JAVA一种技术吧,用在网页编程上,因为JAVA不能直接写在html上,但jsp能,jsp就是Servlet程序,当JSP收到客户的请求时,SCRIPTLET(脚本小程序)就会被执行,脚本段将被插入到JSP所生成的目标Servlet的Serivce函数中.所以脚本小程序不能写方法(函数),因为方法里面不能再有方法了.JSP的执行过程。 1、首先,JAVA是一门

      12-17JSP和JAVA的区别

      阅读更多
    • js可以替代java吗

      nodejs不会替代java。在虚拟机层面 node.js 基于的v8 VM看起来很不错,但和Java的 VM 一比,差距甚远。在服务器领域,特别是拥有众多 CPU 和大量内存的环境下,Java 的 VM 几乎是你能在地球上找到的最好的 VM。而v8既不能充分利用多CPU的性能,也不能将内存充分利用。Node.js是从前端转过来的,恰恰前端是计算机领域少数几个不需要计算机体系知识就能胜任的职业。想要真正做到像java那样水平,计算机体系性的知识必不可少。Node.js特别适合中小型系统的快速开

      12-13js能替代java吗

      阅读更多
    • JAVA直接访问jsp页面报404吗

      404表示的是路径未找到错误,解决办法如下: 【解决方法】 1、首先看错误信息 第一行 2、这里有出错的路径,也就是哪个找不到的路径 3、然后回程序中找调用这个路径的地方,确定路径写的是否正确,是否可达。 JSP页面运行时报的404错处理方法如下: 保证在你的Console窗口中看不到任何起到影响的Exception(jsp在编译的时候会先检查web.xml文件,如果全部正常,没有任何Exception的话,才会成功部署到.metadata\.plugins\org.eclipse.wst.server.

      12-12JAVA访问jsp页面报404吗

      阅读更多
    • jsp实质是java程序对吗

      JSP页面在本质上就是Servlet程序,当JSP页面在首次被访问时,Web容器就会将JSP页面转化为Servlet,只需要做一次。如index.jsp在首次被访问时,Web容器会将其翻译成一个index_jsp.java文件,即Servlet代码。 JSP是服务器端的一种基于java语言的网页技术,它是由一些JSP标记,java程序段以及HTML文件组成的结合体,以java语言作为其内置的脚本语言。实质上是通过调用JSP引擎来生成java文件,再将这个java文件编译成类文件,并执行这个类文件以生成动态

      12-05jsp实质是java程序吗

      阅读更多
    • jsp文件就是java文件吗

      jsp文件不是java文件,java是一种语言类似于C语言等的编程语言,而JSP(JavaServer Pages)是一种动态网页技术标准。jsp是一个网页页面,相当于复杂的html。其中可以插入script代码,当然也可以插入java代码。j ava是一个类文件,在java学习初期主要是写java文件的。如果不写页面的话是没有页面效果的。 1、JSP的写的代码,不利于代码重用。JAVA本来就是面向对象的语言,但在JSP中,体现不出来代码重用的优势。如果把一些通用的代码写成JAVA文件,就方便了很多,例

      12-02jsp文件是java文件吗

      阅读更多
    • 同构JavaScript应用开发

      同构JavaScript应用开发

      大小:10.4 MBJavaScript

      点击下载
    • JavaScript权威指南(第6版)

      JavaScript权威指南(第6版)

      大小:22 MBJS指南

      点击下载
    • JavaScript和jQuery实战手册

      JavaScript和jQuery实战手册

      JavaScript可以大大改进网页的动画、交互性和视觉效果,但学习该门语言不太容易。本书通过一步步引导JavaScript基础知识,展示了如何使用jQuery(即预先写好的JavaScript代码库)来节省时间和精

      大小:103 MBJavaScript

      点击下载
    • JavaScript编程全解

      JavaScript编程全解

      JavaScript编程全解 全方位地介绍了JavaScript开发中的各个主题,无论是前端还是后端的JavaScript开发者都可以在本书中找到自己需要的内容。本书对HTML5、Web API、Node.js及WebSocket等最新的热门技术也

      大小:6.67 MBjs编程

      点击下载
    • HTML CSS JavaScript网页制作从入门到精通

      HTML CSS JavaScript网页制作从入门到精通

      HTML CSS JavaScript网页制作从入门到精通 第3版 共分为19章和4个附录,重点介绍使用HTML进行网页制作的方方面面,同时讲解了目前流行的Web标准与CSS网页布局实例,以及基于JavaScript语言的网页特

      大小:65.2 MB网页制作

      点击下载
    • JavaScript函数式编程

      JavaScript函数式编程

      JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。

      大小:42158 MB MJavaScript

      点击下载

    学习笔记

    6小时59分钟前回答

    js中split()方法获取的数组长度知识点讲解

    定义和用法 split() 方法用于把一个字符串分割成字符串数组。 语法 stringObject.split(separator,howmany) 参数 描述 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 返回值 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。 但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的……

    35小时47分钟前回答

    JS实现数组去重的实例方法

    本文实例讲述了JS简单实现数组去重的方法。分享给大家供大家参考,具体如下: var arr = [abc,abcd,sss,2,d,t,2,ss,f,22,d];//定义一个新的数组var s = [];//遍历数组for(var i = 0;iarr.length;i++){ if(s.indexOf(arr[i]) == -1){ //判断在s数组中是否存在,不存在则push到s数组中 s.push(arr[i]); }}console.log(s);//输出结果:[abc, abcd, sss, 2, d, t, ss, f, 22] 运行结果: 关于indexOf()方法: indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 stringObject.indexOf(searchvalue,fromindex) 该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果……

    28小时42分钟前回答

    JS根据json数组多个字段排序及json数组常用操作示例代码

    js 根据json数组多个字段排序的实现代码如下所示: /**数组根据数组对象中的某个属性值进行排序的方法 * 使用例子:newArray.sort(sortByArr([number],false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序 * @param attr 排序的属性 [name,sex...],根据一个字段或者多个字段排序 * @param rev true表示升序排列,false降序排序 * */function sortByArr(arr, rev) { if (rev == undefined) { rev = 1; } else { rev = (rev) ? 1 : -1; } return function(a, b) { for (var i = 0; i arr.length; i++) { let attr = arr[i] if (a[attr] != b[attr]) { if (a[attr] b[attr]) { return rev * 1; } else { return rev * -1; } } }}} PS:Js 中对 Json 数组的常用操作 我们首先定义一个json数组对象如下:……

    7小时57分钟前回答

    vuejs使用value in list循环遍历数组出现警告的解决方法

    在使用vuejs遍历数组的时候,使用in语句形式,会有一个警告的提示: 警告很明显说是少了v-bind:key,所以添加一个就ok了,看如下文件: /* eslint-disable */template div class=hello ul li v-for=(value,key,index) in object v-bind:key=key//这里就可以去掉警告 {{ value }},{{key}},{{index}} /li /ul /div /template 以上这篇解决vuejs 使用value in list 循环遍历数组出现警告的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    4小时13分钟前回答

    汇总JS从非数组对象转数组的方法

    前言 本文主要汇总了一些JS从非数组对象转数组的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 Array.prototype.slice.call(obj) 该方法可以将类数组对象转换为数组,所谓类数组对象,就是含 length 和索引属性的对象 返回的数组长度取决于对象 length 属性的值,且非索引属性的值,或索引大于 length 的值都不会被返回到数组中 实锤如下 let obj = { 0: 3, 1: 13, 2: 23, 3: 33, length: 3, name: 330}let arr = Array.prototype.slice.call(obj)// [3, 13, 23] 简洁写法 [].slice.call(obj) Array.from(obj) 该方法可以将类数组对象和可迭代对象转换为数组 类数组对象上文已提及,何为可迭代对象? Array、Set、Map 和字符串都……

    34小时20分钟前回答

    JS实现表格排序的实例方法

    本文实例讲述了JS实现简单表格排序操作。分享给大家供大家参考,具体如下: !DOCTYPEhtmlhead meta http-equiv=Content-type content=text/html charset=utf-8 titlesort table/title style *{ margin:0px; padding:0px; } body{ background:#ccc; } table{ width:350px; margin:0 auto; background-color:#eee; } table th{ cursor:hand; padding:5px 0; background-color:#999; } table td{ background-color:#fff; font-size:16px; font-weight:normal; text-align:center; line-height:30px; } /style script language=javascript function sortCells(type){ var tbs=document.getElementsByTagName(table)[0]; var arr=[]; var arr2=[]; for(var i=1;itbs.rows.length;i++){ var text=tbs.rows[i].cells[type].innerText; arr.push(text); arr2[text]=i; } if(type==0){ arr.sort(function(a,b){return a-b}); }else{ a……

    48小时8分钟前回答

    JS排序方法代码汇总

    最近开始学习数据结构。 一点一点整理,希望能坚持下来。 因为方向是前端,所以用JavaScript实现。 //sort排序var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];var testArr3=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];testArr1.sort();//排序结果:[15, 19, 2, 26, 27, 3, 36, 38, 4, 44, 46, 47, 48, 5, 50]testArr2.sort(function(a,b){return ab});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]testArr3.sort(function(a,b){return a-b});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50] //Bubble排序 var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];var testArr2=[3, 44, 38, 5, 47, 15, 36, 26,……