DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> chrome原生方法之數組
chrome原生方法之數組
編輯:關於JavaScript     
下面看一下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>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved