修复IE9&safari 的sort方法


Posted in Javascript onOctober 21, 2011

当前版本 v0.2
v0.1 修复IE9-- Array.prototype.sort 不能根据 对象属性 做排序的遗憾
v0.2 修复safari 不支持函数参数

!function(window){ 
var ua = window.navigator.userAgent.toLowerCase(), 
reg = /msie|applewebkit.+safari/; 
if(reg.test(ua)){ 
var _sort = Array.prototype.sort; 
Array.prototype.sort = function(fn){ 
if(!!fn && typeof fn === 'function'){ 
if(this.length < 2) return this; 
var i = 0, j = i + 1, l = this.length, tmp, r = false, t = 0; 
for(; i < l; i++){ 
for(j = i + 1; j < l; j++){ 
t = fn.call(this, this[i], this[j]); 
r = (typeof t === 'number' ? t : 
!!t ? 1 : 0) > 0 
? true : false; 
if(r){ 
tmp = this[i]; 
this[i] = this[j]; 
this[j] = tmp; 
} 
} 
} 
return this; 
}else{ 
return _sort.call(this); 
} 
}; 
} 
}(window);
Javascript 相关文章推荐
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
javascript 实现 原路返回
Jan 21 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
JavaScript数组操作函数汇总
Aug 05 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
Aug 05 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 #Javascript
jquery ajax return没有返回值的解决方法
Oct 20 #Javascript
IE与FireFox中的childNodes区别
Oct 20 #Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 #Javascript
基于jquery的$.ajax async使用
Oct 19 #Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
Oct 19 #Javascript
模拟select的代码
Oct 19 #Javascript
You might like
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
JS 对象介绍
2010/01/20 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
Javascript缓存API
2016/06/14 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python fileinput模块使用介绍
2014/11/30 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python字符串的方法与操作大全
2018/01/30 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
python基于opencv实现人脸识别
2021/01/04 Python
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
感恩之星事迹材料
2014/05/03 职场文书
安全教育演讲稿
2014/05/09 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
辩论赛新闻稿
2015/07/17 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang