javascript中的數(shù)據(jù)結構---數(shù)組

一、前言

看到標題薪寓,也許會說前端扯什么數(shù)據(jù)結構,寫出頁面完成交互不就ok了嗎澜共?實際上編程語言也有自己的數(shù)據(jù)結構向叉,只是我們平時并沒有過多的去關注。以下我們將來淺談以下javascript中的數(shù)據(jù)結構--數(shù)組

二嗦董、為什么要學習數(shù)據(jù)結構

以我最近接觸的幾個項目來說母谎,后端返回的數(shù)據(jù)稍有些復雜,需要做一些處理才能得到自己需要渲染的數(shù)據(jù)結構京革。作為前端開發(fā)人員奇唤,尤其在現(xiàn)在,必須有強大的數(shù)據(jù)結構算法能力匹摇,才能支撐整個業(yè)務的開發(fā)咬扇。

三、javascript數(shù)據(jù)類型

在說明數(shù)據(jù)結構之前廊勃,我們了解以下javascript都有哪些數(shù)據(jù)結構
原始類型:
Boolean懈贺、Null、Undefined供搀、Number隅居、String钠至、Symbol
Object類型
除 Object 以外的所有類型都是不可變的(值本身無法被改變)葛虐。例如,與 C 語言不同棉钧,JavaScript 中字符串是不可變的(譯注:如屿脐,JavaScript 中對字符串的操作一定返回了一個新字符串,原始字符串并沒有被改變)。我們稱這些類型的值為“原始值”

四的诵、數(shù)組

1.定義

數(shù)組是我們最常用也最熟悉的數(shù)據(jù)結構万栅,它是如何定義的:一個儲存元素的線性集合,元素可以通過索引開任意存取西疤,索引通常是數(shù)字烦粒,用來計算元素之間的存儲位置的偏移量。
emmmmmm.......
這樣說好像和嗯晦澀難懂代赁,簡單說就是:使用單獨的變量名來存儲一系列的值

2.創(chuàng)造與讀寫
var number = []
var arr = [1, 2, 3]
var people = new Array()
var count = new Array(1, 2, 3)
var a = new Array(2)
var b = [1, null, 'apple'] //當然扰她,數(shù)組里面的值不一定都是一樣的
// length是數(shù)組長度,我們可以借助它來進行讀
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i])
}
3.常用基本方法
方法 描述 事例
concat() 連接兩個或更多的數(shù)組芭碍,并返回結果 arr1.caoncat(arr2)
join() 把數(shù)組的所有元素放入一個字符串徒役。元素通過指定的分隔符進行分隔。 arr.join(';')
pop() 刪除并返回數(shù)組的最后一個元素 arr1.pop()
push() 向數(shù)組的末尾添加一個或更多元素窖壕,并返回新的長度 arr.push(1)
shift() 刪除并返回數(shù)組的第一個元素 arr1.shift()
unshift() 向數(shù)組的開頭添加一個或更多元素忧勿,并返回新的長度。 arr.unshift(1)
reverse() 顛倒數(shù)組中元素的順序瞻讽。 arr1.reverse()
slice() 從某個已有的數(shù)組返回選定的元素 arr.slice(1, 2)
sort() 對數(shù)組的元素進行排序 arr1.sort()
splice() 刪除元素鸳吸,并向數(shù)組添加新元素。 arr.splice(1, 2)
toString() 連接兩個或更多的數(shù)組速勇,并返回結果 arr1.toString()
valueOf() 返回數(shù)組對象的原始值 arr.valueOf()
indexOf() 返回查找數(shù)組的位置层释,找不到-1 arr.indexOf(1)
4.迭代器方法

不產(chǎn)生新數(shù)組:

// forEach
function square(num) {
  console.log(num)
}
var nums = [1, 2, 3, 4, 5]
nums.square(square)
// 

產(chǎn)生新數(shù)組:
map(),filter()

function square(num) {
  console.log(num)
}
var nums = [1, 2, 3, 4, 5]
nums.map(square)

array.filter(function(currentValue,index,arr), thisValue)
5.經(jīng)典方法與例子

以上都是一些理論上的知識,比較簡單易懂快集。但是實際上運用到業(yè)務中贡羔,就需要綜合起來了。比如說數(shù)組去重个初、排序乖寒、甚至一些常見的面試題。無論怎么變化院溺,我們只需要關注核心思路楣嘁,怎么知道他們想等,怎么找到對應的索引珍逸,怎么刪掉對應的值逐虚。

小結

此篇算只能算得上一個小筆記吧,雖然可能看起來比較簡單谆膳,但是數(shù)組在我們日常開發(fā)中用的最多叭爱。所以了解好數(shù)組的一些基本操作,以及一些高級用法漱病,將會給我們開發(fā)帶來事半功倍的效果买雾。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末把曼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子漓穿,更是在濱河造成了極大的恐慌嗤军,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晃危,死亡現(xiàn)場離奇詭異叙赚,居然都是意外死亡,警方通過查閱死者的電腦和手機僚饭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門纠俭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浪慌,你說我怎么就攤上這事冤荆。” “怎么了权纤?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵钓简,是天一觀的道長。 經(jīng)常有香客問我汹想,道長外邓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任古掏,我火速辦了婚禮损话,結果婚禮上,老公的妹妹穿的比我還像新娘槽唾。我一直安慰自己丧枪,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布庞萍。 她就那樣靜靜地躺著拧烦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钝计。 梳的紋絲不亂的頭發(fā)上恋博,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音私恬,去河邊找鬼债沮。 笑死,一個胖子當著我的面吹牛本鸣,可吹牛的內容都是我干的疫衩。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼永高,長吁一口氣:“原來是場噩夢啊……” “哼隧土!你這毒婦竟也來了提针?” 一聲冷哼從身側響起命爬,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤曹傀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饲宛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皆愉,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年艇抠,在試婚紗的時候發(fā)現(xiàn)自己被綠了幕庐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡家淤,死狀恐怖异剥,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情絮重,我是刑警寧澤冤寿,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站青伤,受9級特大地震影響督怜,放射性物質發(fā)生泄漏。R本人自食惡果不足惜狠角,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一号杠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丰歌,春花似錦姨蟋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至厘惦,卻和暖如春偷仿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宵蕉。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工酝静, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人羡玛。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓别智,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稼稿。 傳聞我的和親對象是個殘疾皇子薄榛,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容