欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2011年11月30日 21:39:50   作者:  
由于各瀏覽器的js實(shí)現(xiàn)不同,因此各瀏覽器的原生對象(這里不涉及DOM實(shí)現(xiàn),當(dāng)然這也有區(qū)別)的原生方法也不盡相同,采用原生方法的好處顯而易見,使用兼有效率,而且其中有些方法可能包含在以后的ECMAscript規(guī)范中
下面看一下chrome/15實(shí)現(xiàn)的一些數(shù)組方法
---------------------------------------------------------------------------------------------
concat:這個好說,唯一需要注意的就是concat不是就地修改的,是指返回鏈接后的結(jié)果,另外一點(diǎn)是指回展開第一層數(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從右往左的實(shí)現(xiàn)
---------------------------------------------------------------------------------------------
當(dāng)我們實(shí)現(xiàn)自己的小型庫或者一些工具時,也可以稍微擴(kuò)展一下
復(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)文章

  • JavaScript中this綁定規(guī)則你理解了嗎

    JavaScript中this綁定規(guī)則你理解了嗎

    JavaScript中的this是一個非常重要的概念,也是一個令新手開發(fā)者甚至有些不深入理解的多年經(jīng)驗開發(fā)者都會感到困惑的概念,如果你希望自己能夠使用this編寫更好的代碼或者更好理解他人的代碼,就跟隨小編一起理解一下this吧
    2023-07-07
  • js面向?qū)ο笾o態(tài)方法和靜態(tài)屬性實(shí)例分析

    js面向?qū)ο笾o態(tài)方法和靜態(tài)屬性實(shí)例分析

    這篇文章主要介紹了js面向?qū)ο笾o態(tài)方法和靜態(tài)屬性,實(shí)例分析了靜態(tài)方法和靜態(tài)屬性的原理及應(yīng)用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • JavaScript 不支持 indexof 該如何解決

    JavaScript 不支持 indexof 該如何解決

    indexOf() 方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。本文給大家介紹ie8 不支持 indexof 的解決方法
    2016-03-03
  • JS中字符串切割為數(shù)組/數(shù)組拼接為字符串的代碼例子

    JS中字符串切割為數(shù)組/數(shù)組拼接為字符串的代碼例子

    這篇文章主要給大家介紹了關(guān)于JS中字符串切割為數(shù)組/數(shù)組拼接為字符串的相關(guān)資料,數(shù)組是JavaScript中最強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),我們常常通過將字符串轉(zhuǎn)換為數(shù)組來解決許多算法,需要的朋友可以參考下
    2023-09-09
  • JavaScript 錯誤捕獲與處理的完整指南

    JavaScript 錯誤捕獲與處理的完整指南

    在JavaScript中捕獲錯誤通常有四種方式,try-catch 語句塊,Promise 的 catch 方法,throw 語句以及window.onerror事件處理程序,并通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • JS中from 表單序列化提交的代碼

    JS中from 表單序列化提交的代碼

    這篇文章主要介紹了javascript中from 表單序列化提交的實(shí)現(xiàn)方法,代碼簡單易懂,非常不錯,需要的朋友參考下吧
    2017-01-01
  • JavaScript可視化與Echarts詳細(xì)介紹

    JavaScript可視化與Echarts詳細(xì)介紹

    提到數(shù)據(jù)可視化相信大家都不陌生,它能夠?qū)我坏臄?shù)據(jù)通過合適的可視化圖表類型表現(xiàn)出來,使其更加直觀的展現(xiàn)數(shù)據(jù)的變化趨勢、對比、峰值等等。其實(shí)在前端開發(fā)中,數(shù)據(jù)可視化也尤為重要,在眾多圖表庫中,echarts就是最常見的圖表庫之一
    2022-07-07
  • 原生JS實(shí)現(xiàn)跑馬燈效果

    原生JS實(shí)現(xiàn)跑馬燈效果

    本文主要分享了原生JS實(shí)現(xiàn)跑馬燈效果的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 微信小程序中使用ECharts 異步加載數(shù)據(jù)實(shí)現(xiàn)圖表功能

    微信小程序中使用ECharts 異步加載數(shù)據(jù)實(shí)現(xiàn)圖表功能

    本文通過實(shí)例代碼給大家介紹了微信小程序中使用ECharts 異步加載數(shù)據(jù)實(shí)現(xiàn)圖表功能,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • 一覽畫面點(diǎn)擊復(fù)選框后獲取多個id值的方法

    一覽畫面點(diǎn)擊復(fù)選框后獲取多個id值的方法

    這篇文章主要介紹了在一覽畫面點(diǎn)擊復(fù)選框后獲取多個id值的方法,前臺采用js技術(shù)后臺采用java技術(shù)實(shí)現(xiàn)的,邏輯清晰,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-05-05

最新評論