先看下需求。

我想把这很长一大段的带有markdown格式的字符串里包含的image标签的文件名和url解析出来,连同文件名中包含的序号,一起存储到一个数组中。

var input = “” + “\n” +

” + “\n” +

”;

然后对这个数组根据序号进行排序,比如上图的image标签顺序是image3, image1和image2,但我希望排序后的顺序是image1, image2和image3.

下面是我的代码。

<html>
<script>var input = "![image3.png](https://upload-images.jianshu.io/upload_images/2085791-4d8b2cda3a057fb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)" + "\n" + "![image1.png](https://upload-images.jianshu.io/upload_images/2085791-9aa6232b1426df28.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)" + "\n" + "![image2.png](https://upload-images.jianshu.io/upload_images/2085791-04f2773c126194fe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)";var IMAGE_PATTERN = /^!\[(.*)\]\((.*)\)$/;
var IMAGE_INDEX = /^image(\d+).*$/;function MyImage(index, name, url){this.index = index;this.name = name;this.url = url;
}var imagePool = [];function sortByIndex(v1,v2){if(v1.index < v2.index ){return -1;}else if(v1.index > v2.index ){return 1;}else return 0;
}function getParsedImage(input) {if (input.indexOf("https://upload-images.jianshu.io") < 0 ) {return;} var result = IMAGE_PATTERN.exec(input);if( result.length != 3){return;}var imageIndex = IMAGE_INDEX.exec(result[1]);console.assert(imageIndex.length === 2);return new MyImage(imageIndex[1], result[1], result[2]);
}var raw = input.split("\n");for( var i = 0; i < raw.length; i++){var each = getParsedImage(raw[i]);if( !!each){imagePool.push(each);}
}imagePool.sort(sortByIndex);
debugger;</script>
</html>

第58行传入数组原生的sort方法的参数是一个排序函数:

执行完之后,就按照我期望的MyImage对象里index属性进行排序了:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

JavaScript对象根据自定义属性进行排序相关推荐

  1. Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)

    Javascript 对象二(Number.String.Boolean.Array.Date.Math.RegExp) Number 数字 对象 String 字符串 对象 Boolean 布尔 对 ...

  2. 如何遍历JavaScript对象?

    本文翻译自:How to iterate over a JavaScript object? I have an object in JavaScript: 我在JavaScript中有一个对象: { ...

  3. javascript对象操作总结

    2019独角兽企业重金招聘Python工程师标准>>> <script type="text/javascript" >/***对象声明和赋值操作** ...

  4. JavaScript 对象总结

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象 JavaScript 对象 对象只是一种特殊的数据.对象拥有属性和方法 访问对象 ...

  5. 笔记--javascript对象及简单,复杂数据类型

    javascript 对象 1. 对象 什么是对象 ? 在 javascript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等.对象是由属性和方法组成的 ...

  6. JavaScript对象复习

    JavaScript对象 Array对象 function $(tg) {return document.writeln("<br/>"+tg); } var arr= ...

  7. JavaScript交互式网页设计 • 【第5章 JavaScript对象】

    全部章节   >>>> 本章目录 5.1 Object 对象和 Date 对象 5.1.1 JavaScript 的内部对象 5.1.2 Object对象 5.1.3 Date ...

  8. 如何获取HTML元素对应JavaScript对象?

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  9. 根据数组中对象的属性值排序倒叙

    数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...

最新文章

  1. rfid2-micro2440,keil4裸机
  2. PHP考试插件,php秒杀插件?
  3. python人脸识别环境搭建_人脸识别:Windows10系统环境搭建
  4. Chrome指令/追踪Http请求相关
  5. android 代码获取屏幕图像,安卓获取屏幕以及获得像素点 ~ 大树洞
  6. 领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型
  7. tensorflow框架
  8. Python 进程 Process 与线程 threading 区别 - Python零基础入门教程
  9. linux nvidia驱动安装rpm,Fedora 下安装NVIDIA显卡驱动
  10. 天猫双11第一波今晚开启 预计2天内1亿人收到货
  11. Bash命令的学习笔记~
  12. webstorm 主题导入方法
  13. 异步处理Promise
  14. 人工智能对我们的影响(随便谈谈)
  15. 测量计算方位角万能通用公式及VB、VBA源代码
  16. 解决高度塌陷的几种方法
  17. 聊一次跳槽被怼的经历
  18. 代数基础 | Kronecker积
  19. 如何提升自己的运气?提升运气财运的方法
  20. DataTable列自定义渲染切页无效重绘

热门文章

  1. LSMW one tip - 字段定义
  2. 实现将字符串转换为指令执行
  3. 分布式与人工智能课程(part6)--第六课
  4. 网络编程(part5)--文件读写偏移量及文件描述符
  5. SAP BTP 应用 mta.yaml 里的 sap-btp-project1-dest-content module
  6. 使用 ABAP Open SQL 的 Select AS 别名,提高代码可读性
  7. 使用 Rxjs 解决 Angular Component 之间的通信问题
  8. SAP 电商云 Spartacus UI 修改 Delivery Mode 触发的三个 HTTP 请求
  9. 群里有朋友关于SAP Spartacus的疑问
  10. Angular源代码里字母Theta的含义