chrome原生方法之数组


下面看一下chrome/15实现的一些数组方法
---------------------------------------------------------------------------------------------
concat:这个好说,唯一需要注意的就是concat不是就地修改的,是指返回链接后的结果,另外一点是指回展开第一层数组
join:连接数组
pop:出栈操作,注意这个也是就地修改原数组
push: 入栈操作,注意这个也是就地修改原数组
reverse: 倒序数组,注意这个也是就地修改原数组
shift: 出队操作,注意这个也是就地修改原数组
unshift: 在数组头部插入一项,后面的以此后移
slice: 截取数组的一部分,里一个常见的操作是用这个方法把类数组转化为真正的数组
splice:修改数组,可以用来插入新项,注意这个也是就地修改原数组
sort: 数组排序,注意这个也是就地修改原数组
toLocaleString:返回数组的本地字符串形式,一般是用逗号
toString: 返回数组的字符串形式,一般是用逗号
---------------------------------------------------------------------------------------------
isArray:判断一个变量是不是数组,注意,这个是个静态方法,调用形式Array.isArray()
---------------------------------------------------------------------------------------------
every:判断一个数组里面的项是不是都满足条件,如果全部满足条件,返回true,否则返回false
some: 这个可以跟every联系起来,every要求全部为true最后才为true,some只要有一项为true,返回就为true
filter:按照给定条件从数组里筛选出符合条件的项,然后作为新的数组返回,否则返回null
forEach:对数组中的每一项一次执行给定的操作
indexOf:返回给定项在数组中的第一个位置(从0下标开始)
lastIndexOf:与indexOf相反
map:对数组中的每一项一次执行给定的操作并返回修改后的数组
reduce:reduce(func,init) func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值。
reduceRight:reduce从右往左的实现
---------------------------------------------------------------------------------------------
当我们实现自己的小型库或者一些工具时,也可以稍微扩展一下

复制代码 代码如下:

Object.prototype.extend = function(src){
for(var i in src){
this[i] = src[i];
}
}
Array.extend({
toArray : function(arrayLike){
try{
return [].slice.call(arrayLike);
}catch(ex){
var ret = [];
for(var i = 0,len = arrayLike.length ; i < len ; i++){
ret.push(arrayLike[i]);
}
}
},
isArray : (Array.isArray)?Array.isArray:function(ele){
return ele.constructor == Array;
}
})
Array.prototype.extend((function(){
var each = Array.prototype.forEach || function(fn,obj){
for(var i = 0,len = this.length ; i < len ; i++){
fn.call(obj,this[i]);
}
};
var filter = Array.prototype.filter || function(fn,obj){
var result = [];
for(var i = 0,len = this.length ; i < len ; i++){
if(fn.call(obj,this[i])){
result.push(this[i]);
}
}
return result;
};
var every = Array.prototype.every || function(fn,obj){
for(var i = 0,len = this.length ; i < len ; i++){
if(!fn.call(obj,this[i])){
return false;
}
}
return true;
};
var some = Array.prototype.some || function(fn,obj){
for(var i = 0,len = this.length ; i < len ; i++){
if(fn.call(obj,this[i])){
return true;
}
}
return false;
};
var indexOf = Array.prototype.indexOf || function(dest){
for(var i = 0; i < this.length ;i++){
if(dest == this[i]){
return i;
}
}
return -1;
};
var map = Array.prototype.map || function(fn,obj){
var result = [];
for(var i = 0,len = this.length ; i < len ; i++){
result.push(fn.call(obj,this[i]));
}
return result;
};
var reduce =Array.prototype.reduce || function(fn,init){
var result = init || this[0];
for(var i = 0; i < this.length; i++){
result = fn(result,this[i]);
}
return result;
}
return {
map : map,
each : each,
some : some,
every : every,
filter : filter,
indexOf: indexOf,
reduce : reduce
}
})())

下面是一个小例子,给指定ul下面的li设置内容:
复制代码 代码如下:

<ul id="test">
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
Array.prototype.slice.call(document.getElementById('test').getElementsByTagName('li'),0).each(function(li){
li.innerHTML = '测试each';
})
</script>



相关阅读:
IE地址栏实现的JS有趣效果和应用
javascript的函数
CSS教程:新的图像替换方法
CSS代码缩写技巧
触发gridview的行选择事件
sql 服务器知识
The file /boot/grub/stage1 not read cor 解决办法
php下MYSQL limit的优化
如何在linux下输出当前时间
CLASS_CONFUSION JS混淆 全源码
HTML代码:网页头部代码全清楚
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Linux本地root密码破解方法
jsp 实现在线人数统计
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 有惊无险求医记300字 中秋节促销广告语 畅销小说推荐:《无比美妙的痛苦》 散文诗:妈妈,让我再看你一眼 五三班,你永远在我们心中作文600字 水乡的女人 职场里的新人该忌讳什么 欢乐迎羊年祝福语大全 经典爱情英文语句 繁华不过一锦囊,除去昭和度月凝 学会宽容作文800字 人教版七年级历史下册《经济重心的南移》学案 缘,分 2015共青团工作个人工作总结 只有倾尽才能,不断进取,才能增加可能 挂职锻炼年终工作总结 没有完成作业检讨书 小学五年级作文500字:美丽的植物园 酒店员工管理制度范本大全 我的银行实习报告_工作总结范文 自然灾害——龙吸水作文750字 《居里夫人传》读后感300字 色彩跑,快乐缤纷五公里 写元旦的作文500字 最新大学生志愿者演讲稿 经典的生日祝词_浪漫温馨生日祝福语 生物钢笔 高中高一作文900字:青春,惟有奋斗 照亮,世界的东方 班主任工作总结-当好自己的家,作好自己的主 主办会计岗位说明书 初中初一作文550字:保护环境,人人有责 三年级清明节作文:充满意义的一天 我的自由天地 离别是泪的忧伤 缅怀我的妈妈 结束作文800字 一条线两个端点 小学四年级作文800字:永远的感激 青春的羞涩作文100字 600字有关骆驼祥子读书笔记:祥子的悲剧 乡镇2007年工业工作计划 小学一年级作文500字:一次拔河比赛 新年晚会 周弼《浣溪沙·朴朴精神的的香》 武艺,请你记得作文700字 我们家的欢乐行动作文 美丽的姐姐 刑事案件询问笔录范本

Copyright © 2016 phpStudy |