国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Array的javascript數(shù)據(jù)結(jié)構(gòu)描述

iOS122 / 988人閱讀

摘要:幾乎所有的編程語言都有類似的數(shù)據(jù)結(jié)構(gòu)。然而的數(shù)組卻略有不同。沒有定義中說的那樣的數(shù)據(jù)結(jié)構(gòu),作為替代。元素通過指定的分隔符進(jìn)行分隔。返回該對(duì)象的源代碼。把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。

寫在前面的話:

經(jīng)常看到技術(shù)博客上寫的內(nèi)容很詳細(xì),對(duì)于一個(gè)問題,大家的博客內(nèi)容似乎都是一樣的。不難發(fā)現(xiàn)這些技術(shù)博客已經(jīng)成為各路教程的匯總地,而教程一般都是參考國(guó)外博客翻譯或者直接在經(jīng)典的書籍上大片抄錄。我不推薦在segementfault或者其他博客上找教程學(xué)習(xí)編程,因?yàn)檫@樣得來的東西是碎片化的,往往也摻雜著作者個(gè)人對(duì)于程序的理解,很容易誤導(dǎo)人,所以學(xué)習(xí)最好的方法是自己買上一本圣經(jīng)認(rèn)真看透,再來博客論壇看看別人的學(xué)習(xí)心得,然后對(duì)比自己的理解,這樣收獲才會(huì)很大。所以今天關(guān)于這個(gè)javascript數(shù)組的總結(jié)認(rèn)識(shí),我寫的不是教程,而是根據(jù)經(jīng)典書籍參考學(xué)習(xí)后得到的一些感悟。想要完整學(xué)習(xí),請(qǐng)務(wù)必看下列參考書籍

數(shù)據(jù)結(jié)構(gòu)與算法JavaScript描述 p13~p32

javascript高級(jí)程序設(shè)計(jì)(第三版) p84~p98

先來舉個(gè)數(shù)組栗子

tracy=[{1:"pomelo"},"tracy","2"];
//數(shù)組可以保存任何類型的數(shù)組,如字符串,對(duì)象,數(shù)值都可以
typeof(tracy)
//"object"數(shù)組是一個(gè)對(duì)象,對(duì)象是一個(gè)引用類型,
Array.isArray(tracy);
//”true“ ,這個(gè)是ECMAScript5定義的一個(gè)方法,
tracy[0][1]
//"pomelo",取出0號(hào)數(shù)組下屬性名為“1”的值。用
tracy[0].1// VM1687:2 Uncaught SyntaxError: Unexpected numbermessage:
//因?yàn)閷?duì)象屬性值只能是字符串類型,所以直接用”點(diǎn)表示法“會(huì)報(bào)錯(cuò),但是“[]表示法”可以
tracy=[{pomelo:"tracy"},"tracy","2"];
tracy[0].pomelo
//"tracy"。把數(shù)組0的對(duì)象屬性名變成字符串就可以直接取值了
tracy.length//3
tracy[tracy.length]="imooc";
//"imooc", javascript中l(wèi)ength是可讀寫的,因?yàn)閿?shù)組能夠?qū)嵕€末尾添加刪除操作
tracy//[Object, "tracy", "2", "imooc"]
var tracyStr=tracy.toString();
//"undefined"  toString()方法,將數(shù)組轉(zhuǎn)化為字符串
tracyStr
//"[object Object],tracy,2,imooc"
tracy.join(";");
//"[object Object];tracy;2;imooc"  
//join()方法只接受一個(gè)參數(shù)用于數(shù)組轉(zhuǎn)化為字符串后的分隔符。
//toString()方法只是默認(rèn)用“,”逗號(hào)分割。

以上就是一個(gè)簡(jiǎn)單的數(shù)組的栗子,我們可能在平時(shí)中也高頻使用。總結(jié)一下:
1.數(shù)組可以保存任何類型的數(shù)組,如字符串,對(duì)象,數(shù)值都可以
2.javascript中length是可讀寫的
3.JavaScript 對(duì)象中的屬性名必須是字符串。

數(shù)組的標(biāo)準(zhǔn)定義是什么?

數(shù)組是:一個(gè)存儲(chǔ)元素的線性集合(collection)---(一段線性分配的內(nèi)存),元素可以通過索引來任意存取,索引通常是數(shù)字,用來計(jì)算元素之間存儲(chǔ)位置的偏移量。幾乎所有的編程語言都有類
似的數(shù)據(jù)結(jié)構(gòu)。
然而JavaScript 的數(shù)組卻略有不同
1.javascript沒有定義中說的那樣的數(shù)據(jù)結(jié)構(gòu),作為替代。javascript提供類數(shù)組對(duì)象(array-like),把下標(biāo)變成字符串,用其作為屬性,所以這就是它慢的原因
2.JavaScript 中的數(shù)組是一種特殊的對(duì)象,用來表示偏移量的索引是該對(duì)象的屬性,索引可
能是整數(shù)。使用起來方便:屬性的檢索操作像操作對(duì)象屬性一樣
3.數(shù)組可以由 Array 對(duì)象的構(gòu)造函數(shù)創(chuàng)建,也可以用內(nèi)置的方法

怎么創(chuàng)建數(shù)組?

對(duì)象的創(chuàng)建:

var pomelo={};//對(duì)象字面量表達(dá)法
或者 var pomelo=new Object();//Object構(gòu)造函數(shù)的方法

數(shù)組的創(chuàng)建:

var pomelo=[];//數(shù)組字面量表達(dá)法
或者 var pomelo=new Array();//使用array構(gòu)造函數(shù)的方法(可以省略new)

Q:那么數(shù)組字面量表達(dá)法創(chuàng)建與構(gòu)造函數(shù)創(chuàng)建有什么不同呢?
A:大多數(shù) JavaScript 專家推薦使用 []操作符,和使用 Array 的構(gòu)造函數(shù)相比,這種方式被認(rèn)為效率更高.

什么時(shí)候使用數(shù)組?

因?yàn)槲覀冎罃?shù)組是一種對(duì)象,那么我們應(yīng)該什么時(shí)候用數(shù)組?什么時(shí)候用對(duì)象呢?
其實(shí)有一個(gè)很簡(jiǎn)單的規(guī)則就是:當(dāng)屬性名是連續(xù)的整數(shù)時(shí)就使用數(shù)組,否則就使用對(duì)象.

數(shù)組有那些原生的方法呢?

concat() 連接兩個(gè)或更多的數(shù)組,并返回結(jié)果。

join() 把數(shù)組的所有元素放入一個(gè)字符串。元素通過指定的分隔符進(jìn)行分隔。

pop() 刪除并返回?cái)?shù)組的最后一個(gè)元素

push() 向數(shù)組的末尾添加一個(gè)或更多元素,并返回新的長(zhǎng)度。

reverse() 顛倒數(shù)組中元素的順序。

shift() 刪除并返回?cái)?shù)組的第一個(gè)元素
slice()從某個(gè)已有的數(shù)組返回選定的元素

sort() 對(duì)數(shù)組的元素進(jìn)行排序

split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。和join()方法相反
splice()刪除元素,并向數(shù)組添加新元素。
toSource() 返回該對(duì)象的源代碼。

toString() 把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果。

toLocaleString() 把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。

unshift() 向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長(zhǎng)度。

valueOf() 返回?cái)?shù)組對(duì)象的原始值

這些原生方法的使用我就不一一介紹了,大家自己去查API

javascript怎么去描述這些方法的數(shù)據(jù)結(jié)構(gòu)和算法呢?

1.為了方便鏈?zhǔn)秸{(diào)用,我們可以給Array原型添加自定義的方法來擴(kuò)充數(shù)組功能

  Function.prototype.method=function(name,func){
        this.prototype[name]=func;
        return this;
    };

2.利用可讀寫的length可以完成數(shù)組添加,刪除操作

比如  push() 向數(shù)組的末尾添加元素

var poemlo=["1","2","3"];
pomelo.push("4");//["1","2","3","4"]
// pomelo[pomelo.length]="4";//["1","2","3","4"]


比如 pop()函數(shù)

Array.method("pop_pomelo",function(){

    return this.splice(this.length-1,1);
})   
pomelo.pop();// “4”
//pomelo.pomelo_pop()  //["4"]

3.利用for in 可以完成數(shù)組的循環(huán)遍歷的功能

   //比如forEach()方法使得每個(gè)數(shù)組元素有乘方的效果
   var pomelo=["1","2","3"];
    function square(num){
        console.log(num+":   "+num*num);
    }
    pomelo.forEach(square);
    //可以添加數(shù)組功能square
         Array.method("square",function(){
        for (var i=0;i

4.普通的數(shù)組直接賦值是淺賦值,會(huì)改變?cè)械臄?shù)組對(duì)象,我們可以自己寫一個(gè)copy數(shù)組函數(shù)

    Array.method("copy_pomelo",function(){
    var arr= [];
    for (var i=0;i

區(qū)分splice()slice()函數(shù),split()函數(shù)

slice() 從某個(gè)已有的數(shù)組返回選定的元素 
slice(start,end)
===取出來的數(shù)組是slice[start]--slice[end] (但是不包含slice[end])
splice() 刪除元素,并向數(shù)組添加新元素。
splice(start,deletecount,item)
===數(shù)組從splice[start]開始,移除deletecount個(gè)元素,并用新的item數(shù)組元素代替
split()函數(shù)是把一個(gè)`字符串`分割成字符串`數(shù)組`。和join()方法恰好相反。
"2:3:4:5".split(":")    //將返回["2", "3", "4", "5"]

先寫到這兒.持續(xù)更新==.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/85867.html

相關(guān)文章

  • 常用排序算法之JavaScript實(shí)現(xiàn)

    摘要:代碼實(shí)現(xiàn)六堆排序算法簡(jiǎn)介堆排序是指利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。九計(jì)數(shù)排序算法簡(jiǎn)介計(jì)數(shù)排序是一種穩(wěn)定的排序算法。計(jì)數(shù)排序不是比較排序,排序的速度快于任何比較排序算法。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 1、插入排序 1)算法簡(jiǎn)介 插入排序(Insertion-Sort)的算法描述是一種簡(jiǎn)單直觀的排序算法。它...

    jerry 評(píng)論0 收藏0
  • JavaScript基礎(chǔ)整理之?dāng)?shù)組(一)

    摘要:原文發(fā)布在數(shù)組應(yīng)該是日常開發(fā)中最常見的數(shù)據(jù)結(jié)構(gòu)了,雖然常見,但是卻不一定能優(yōu)雅地處理好,中數(shù)組的處理方法很多,各個(gè)方法的參數(shù)返回值是否修改原數(shù)組等也容易記混。 原文發(fā)布在:http://blog.xiaofeixu.cn/2017... 數(shù)組應(yīng)該是日常開發(fā)中最常見的數(shù)據(jù)結(jié)構(gòu)了,雖然常見,但是卻不一定能優(yōu)雅地處理好,JavaScript中數(shù)組的處理方法很多,各個(gè)方法的參數(shù)、返回值、是否修...

    dingda 評(píng)論0 收藏0
  • V8 中 Fast 屬性

    摘要:這些是中可用的最快屬性。通常來說我們將線性屬性存儲(chǔ)中存儲(chǔ)的屬性稱為。因此也支持所謂的屬性。整數(shù)索引屬性的處理和命名屬性的復(fù)雜性相同。 本文為譯文,原文地址:http://v8project.blogspot.com...,作者,@Camillo Bruni ,V8 JavaScript Engine Team Blog 在這篇博客中,我們想解釋 V8 如何在內(nèi)部處理 JavaScrip...

    Andrman 評(píng)論0 收藏0
  • JavaScript Array 整理 - 元素操作

    摘要:此文章是我的原創(chuàng)文章,原文地址前篇整理了一些常用的遍歷操作方法,今天再整理一下對(duì)象中針對(duì)元素操作的方法。返回當(dāng)前數(shù)組最后一個(gè)元素描述返回?cái)?shù)組第一個(gè)元素,并從當(dāng)前數(shù)組中刪除它。刪除的元素組成的數(shù)組 此文章是我的原創(chuàng)文章,原文地址:http://lpgray.me/article/49/ 前篇整理了一些Array常用的遍歷操作方法,今天再整理一下Array對(duì)象中針對(duì)元素操作的方法。 分別是...

    phodal 評(píng)論0 收藏0
  • JavaScript數(shù)組去重—ES6兩種方式

    摘要:數(shù)組的方法方法創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。可選,執(zhí)行函數(shù)時(shí)的值。刪除所有的鍵值對(duì),沒有返回值。返回一個(gè)布爾值,表示某個(gè)鍵是否在當(dāng)前對(duì)象之中。 說明 JavaScript數(shù)組去重這個(gè)問題,經(jīng)常出現(xiàn)在面試題中,以前也寫過一篇數(shù)組去重的文章,(JavaScript 數(shù)組去重的多種方法原理詳解)但感覺代碼還是有點(diǎn)不夠簡(jiǎn)單,今天和大家再說兩種方法,代碼...

    FrancisSoung 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<