最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

chrome原生方法之?dāng)?shù)組

 更新時間:2011年11月30日 21:39:50   作者:  
由于各瀏覽器的js實現(xiàn)不同,因此各瀏覽器的原生對象(這里不涉及DOM實現(xiàn),當(dāng)然這也有區(qū)別)的原生方法也不盡相同,采用原生方法的好處顯而易見,使用兼有效率,而且其中有些方法可能包含在以后的ECMAscript規(guī)范中
下面看一下chrome/15實現(xiàn)的一些數(shù)組方法
---------------------------------------------------------------------------------------------
concat:這個好說,唯一需要注意的就是concat不是就地修改的,是指返回鏈接后的結(jié)果,另外一點是指回展開第一層數(shù)組
join:連接數(shù)組
pop:出棧操作,注意這個也是就地修改原數(shù)組
push: 入棧操作,注意這個也是就地修改原數(shù)組
reverse: 倒序數(shù)組,注意這個也是就地修改原數(shù)組
shift: 出隊操作,注意這個也是就地修改原數(shù)組
unshift: 在數(shù)組頭部插入一項,后面的以此后移
slice: 截取數(shù)組的一部分,里一個常見的操作是用這個方法把類數(shù)組轉(zhuǎn)化為真正的數(shù)組
splice:修改數(shù)組,可以用來插入新項,注意這個也是就地修改原數(shù)組
sort: 數(shù)組排序,注意這個也是就地修改原數(shù)組
toLocaleString:返回數(shù)組的本地字符串形式,一般是用逗號
toString: 返回數(shù)組的字符串形式,一般是用逗號
---------------------------------------------------------------------------------------------
isArray:判斷一個變量是不是數(shù)組,注意,這個是個靜態(tài)方法,調(diào)用形式Array.isArray()
---------------------------------------------------------------------------------------------
every:判斷一個數(shù)組里面的項是不是都滿足條件,如果全部滿足條件,返回true,否則返回false
some: 這個可以跟every聯(lián)系起來,every要求全部為true最后才為true,some只要有一項為true,返回就為true
filter:按照給定條件從數(shù)組里篩選出符合條件的項,然后作為新的數(shù)組返回,否則返回null
forEach:對數(shù)組中的每一項一次執(zhí)行給定的操作
indexOf:返回給定項在數(shù)組中的第一個位置(從0下標(biāo)開始)
lastIndexOf:與indexOf相反
map:對數(shù)組中的每一項一次執(zhí)行給定的操作并返回修改后的數(shù)組
reduce:reduce(func,init) func為二元函數(shù),將func作用于seq序列的元素,每次攜帶一對(先前的結(jié)果以及下一個序列的元素),連續(xù)的將現(xiàn)有的結(jié)果和下一個值作用在獲得的隨后的結(jié)果上,最后減少我們的序列為一個單一的返回值。
reduceRight:reduce從右往左的實現(xiàn)
---------------------------------------------------------------------------------------------
當(dāng)我們實現(xiàn)自己的小型庫或者一些工具時,也可以稍微擴展一下
復(fù)制代碼 代碼如下:

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設(shè)置內(nèi)容:
復(fù)制代碼 代碼如下:

<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>

相關(guān)文章

最新評論

北海市| 方正县| 德格县| 吉安县| 武隆县| 随州市| 宝应县| 元氏县| 拉萨市| 十堰市| 东乌珠穆沁旗| 镇平县| 古田县| 无锡市| 鹿泉市| 台南县| 凭祥市| 仙居县| 漾濞| 泸溪县| 如东县| 曲阜市| 晋州市| 湖南省| 财经| 韶关市| 灌云县| 城口县| 北辰区| 横峰县| 朝阳区| 恩施市| 德钦县| 正定县| 朝阳县| 望城县| 仁布县| 介休市| 建德市| 高密市| 灌阳县|