優秀程式設計師通過簡單代碼,窺探電腦編程中強大的數組操作功能

2020-12-23 天雪道

優秀程式設計師通過簡單代碼,窺探電腦編程中強大的數組操作功能。程式語言中,數組是一個非常重要的概念,也是一種很常用的類型。本文中通過javascript語言的代碼實例,展現編程中數組的魅力。在javascript語言中,數組Array類型是一種引用類型,可以保存任何數據類型的數據。如字符串,數值,對象等。

圖A 創建數組

如圖A,通過構造函數Array()傳入不同的參數創建不同的新數組。當傳入的參數為空時,創建length長度為零的空數組testArray_a;當傳入的參數為數值5時,創建了一個length長度為5的空數組testArray_b,數組中的5個數據項均為undefined;當傳入的參數為字符串a,b,c,d,e時,新數組testArray_c被創建,此時該數組的length長度為5,各數據項為a,b,c,d,e。利用構造函數構建新數組,只是創建數組的一種方式,還有一種比較常見的方式為數組字面量。在編程中,數組是可以通過索引進行操作的。

圖B 索引特定數據項

如圖B,通過數組的索引對數組進行特定數據項的替換,添加。通過操作符new加構造函數Array(),創建名為testArray_c的數組,該數組中的數據項為a,b,c,d,e,length長度為5。testArray_c[4]="f";將第五個數據項e替換為f,返回新數組:a,b,c,d,f;testArray_c[5]="G";在位置5添加數據項六G;返回新數組:a,b,c,d,f,G,length長度為6;給原數組添加數據項可以是任何位置的添加。數據項間沒有數據的位置,都是undefined項。testArray_c[10]="M";在位置10添加數據項「M」,返回新數組:a,b,c,d,f,G,undefined,undefined,undefined,undefined,M,length長度為10;

圖C 末尾添加

如圖C,數組中,最後一個數據項的索引總是為length-1,所以,下個數據項的索引即為length。利用這個特性,可以很方便的為某個數組在末尾添加數據項。testArray_c.length="Z";在數組testArray_c末尾添加Z;testArray_c.length="X",末尾加X;經過兩次操作,返回的新數組為:a,b,c,d,e,Z,X。以此類推,可以添加末尾數據項的任意個數。

圖D splice()方法插入 替換 刪除

如圖C,通過方法splice()對數組進行操作,其功能可有刪除數據項,插入數據項,替換數據項。刪除操作:var testArray_c1=testArray_c.splice(1,2);從位置1開始刪除2個數據項;console.log(testArray_c1);返回刪除的數據項b,c; console.log(testArray_c);返回刪除後的新數組a,d,e;插入操作:var testArray_c2=testArray_c.splice(2,0,"8","9");從位置2開始插入8,9兩項,變成新數組a,d,8,9,e。

圖E splice()方法執行結果

替換數據項操作:var testArray_c3=testArray_c.splice(1,3,"X","Y","Z");從位置1開始,刪除3個數據項,後在刪除的位置上添加X,Y,Z;console.log(testArray_c3);返回刪除項d,8,9;console.log(testArray_c); 返回新數組a,X,Y,Z,e;如圖E為 splice()方法執行結果。在數組操作中,splice()方法是非常強大的,可以很方便的操作數組。一種程式語言,如果沒有數組這種數據結構會是什麼樣的呢?會不會有更好的數據結構來代替數組?

相關焦點

  • 在編程中,優秀程式設計師無法忍受的編程語法缺陷,你遇到過哪些?
    程式語言缺陷在計算機編程中,優秀程式設計師都無法忍受的編程語法缺陷,你遇到過哪些?沒有完美的程式語言,只有不斷發展的,適合特定技術選型的程式語言。作為程式設計師,由於程式語言機制的缺陷引起的編程問題,你都有哪些體會呢?
  • 面向對象的數組的封裝—程式設計師的優秀品質是「懶惰」
    前言前面幾章,我們詳細討論了一個數組的增加和刪除,大家可以看得出,數組對於增加和刪除一個數據並不優秀。所以,如果對一個數組頻繁的插入和刪除操作,建議你不要用數組而考慮用鍊表,鍊表我們後面會慢慢地講到。我們會對數組進行封裝,將其封裝成一個工具類,這個類中包含:增加、刪除、更新、指定位置增加和更新、獲取數組長度、查看數組元素等功能。這樣封裝以後用起來就非常方便了,畢竟「程式設計師要學會懶惰」。代碼太多,百家號又不能貼代碼,這裡我把每個代碼拆分開貼出來,大家看看就行,知道代碼的原理。最後我會給出碼雲地址,大家可以去那裡下載代碼,直接可以用哦。
  • 初中生數學知識,初探計算機編程中數組的奧秘,編程真的難嗎?
    利用初中生的數學知識,初探計算機編程中數組的奧秘,你覺得編程真的難嗎?今日目標:通過簡單的數學運算,深入了解計算機編程中javascript數組的歸併應用。數組歸併,通過某種函數的執行,對數組的所有元素進行特定的操作處理,並返回符合條件的單個值過程。本例中,主要了解程式設計師常用的兩個方法:reduce()方法和reduceRight()方法。這兩種方法功能基本相同,只是執行順序相反,最終結果返回值是一致的。
  • 程式設計師必備的編程神器,MAX你的代碼質量!
    VimVim被譽為文本/代碼編輯器之中最為優秀經典的上古神器,學習曲線很陡峭,但仍止不住很多geek嚮往的步伐,可見其受歡迎程度。代碼以後想用找不到?這些都是可以通過Paste給你解決的。windows用戶可以參考clibor,也是相同的功能。
  • 零基礎程式設計師,怎麼學習Java編程,像淘寶購物一樣簡單輕鬆
    大家好,今天我們來分享一下「零基礎程式設計師,怎麼學習Java」,像淘寶購物一樣簡單輕鬆。前面寫的一篇「全速自學Java編程」,是基於有一點編程基礎的,對於零基礎想轉行軟體開發工程師,看著就是雲裡霧裡。所以,今天寫一篇零基礎學計算機編程的文章。
  • Matlab強大的數組處理功能如何解決圖像處理解析方案
    但在程序設計過程中,通常會遇到兩個難點問題:(1)二維數組參數的傳遞與輸出; (2)Matlab生成圖形嵌入VC工程界面中。對於第一個問題,Bruce McKinney[1]在MSDN上指出;「如果對一維數組進行操作,則SAFEARRAY函數變的簡單且易操作。
  • 使用JavaScript對象數組進行函數式編程
    雖然這些功能的文檔是足夠的,但它通常會顯示非常基本的實現用例。在日常使用中,我們通常需要使用這些方法來處理數據對象的數組,這是文檔中缺乏的場景。另外,這些操作符經常被用功能性語言來看,並為JavaScript帶來了一種新的透視功能,即通過具有功能性觸摸的對象進行迭代。在這篇文章中,我們將打破使用的幾個例子map,reduce和filter操作對象的數組。
  • 優秀而高效的程式設計師必需寫好代碼的10個技巧,
    作者丨Christopher Diggins譯者丨Teixeira10【譯者注】在本文中,作者介紹了10個寫好代碼的建議,以自己切身編寫代碼的體會和經驗來告訴開發者這10個建議的好處,並指導讀者成為一個優秀而高效的程式設計師。以下為譯文:那麼怎樣才可以使代碼變得優秀呢?
  • 優秀而高效的程式設計師必需寫好代碼的10個技巧
    以下為譯文:那麼怎樣才可以使代碼變得優秀呢?好的代碼可以被認為是易於閱讀、理解、調試和修改的,而且最重要的是很少有缺陷。顯然,編寫良好的代碼需要花費更多的時間,但從長期看會有更多的價值,因為維護和重用代碼的成本會變的更低。事實上,我們可以將好代碼與可重用的代碼等同起來,這是許多技巧背後的統一原則。
  • 什麼才是適合程式設計師的筆記本電腦?專業、便攜、強大
    如果你是一個搬磚的程式設計師,一臺好的筆記本就是你工作和賺錢的武器,一點不能馬虎!專業的程式設計師需要專業的筆記本如果你是專業的軟體程式設計師,你就會知道一臺出色的筆記本電腦對編程的重要性。儘管你可以在任何筆記本電腦上進行某種類型的編碼,但是功能強大且輕巧且便於攜帶的筆記本比什麼都重要。
  • LabVIEW編程技巧:功能強大的變體數據類型用法
    LabVIEW提供了一組函數用於操作變體數據,其位於函數面板的「編程」-->「簇、類與變體」-->「變體」子面板中,主要包括了下面幾個函數: 在上面函數中,使用「轉換為變體」和「變體至數據轉換」可以使LabVIEW常規數據與變體之間進行相互轉換。
  • TGDC|一個遊戲程式設計師的堅持——論向量化編程
    這裡有另外一個連結,這個連結就是很早以前微軟一個寫Windows的程式設計師他的一個抱怨。他就是講Windows為什麼比其他的作業系統慢。他說因為Windows程序實際上是由於商業化開發,然後迭代了很多很多次,真正寫了很多代碼的那些程式設計師,可能早就被類似亞馬遜和谷歌這些公司挖走了。剩下的一些程式設計師,都是相對來說沒那麼多經驗,改代碼也不知道從何下手的。
  • 簡單代碼的秘訣
    它包含正在使用的容器/數據結構(數組)的詳細信息,這意味著它僅適用於數組。 它包含狀態形狀依賴性。它包含迭代邏輯,這意味著如果其他操作也需要訪問數據結構中的每個元素,則還需要在該代碼中重複非常相似的迭代邏輯,這就可能違反 DRY(Do not Repeat Yourself)原則。
  • 程式設計師應該學習的5種程式語言
    我在某處讀到程式設計師應該每年學習一種新的程式語言(我認為它的代碼完整,但不確定),但如果你不能這樣做,我建議你至少學習以下五種程式語言,以便在你的職業生涯中取得好成績。 。每個公司都喜歡多語言程式設計師和一個全面的編碼人員,他們是多才多藝的語言編寫快速腳本,並且還可以編寫複雜的Java程序,確實是一個有價值的編碼器。
  • 在《程式設計師升職記》中體驗「代碼人生」
    由知名開發商Tomorrow Corporation製作並發行的遊戲《程式設計師升職記(Human Resource Machine)》或許能給出答案:在這款遊戲中,製作組將編程化作通俗易懂的解謎玩法,玩家作為一個剛進入公司的底層程式設計師,通過完成一項項任務慢慢成長。遊戲僅需要根據提示對封裝好了的代碼塊進行簡單的拖拽和組合排列即可。
  • 高手把電腦程式語言替換成中文!程式設計師看了表示一言難盡
    編程是和機器溝通,因此要用機器的語言而不是人類的語言。最早的程序就是0和1的數字,不是中文也不是英文。以前的程式設計師,每天寫程序就是在一條長長的紙帶上打孔表示0和1。後來發現0和1的二進位太麻煩了,就把0和1壓縮一下,用16進位表示,比如數字10,用二進位表示是1010,用16進位表示就是0A,這樣表達起來就更簡潔,但是輸入電腦後,仍然要轉換為二進位電腦才能明白。
  • 英特爾機器編程工具可檢測代碼中的Bug
    雖然仍處於早期階段,這個新穎的自我監督系統有望成為一個強大的生產力工具,幫助軟體開發者進行耗時費力的Debug。在初步測試中,ControlFlag利用超過10億行未標記的產品級別的代碼進行了訓練並學習了新的缺陷。
  • 程式設計師編程入門必知!程式設計師需要學什麼
    什麼是編程? 編程就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。操作方法首先,編程所需的基礎也就是語言,選擇一種自己感興趣或者擅長的語言,這裡給大家羅列一個語言的分類:Python——一個非常適合初學者的語言 ,而且當你掌握它的時候它會變得更加強大。被用來開發了許多Web應用、甚至一些遊戲。Java——被無數個項目所使用,從遊戲到Web應用再到ATM軟體。
  • 機器編程,會讓程式設計師丟飯碗嗎?
    機器編程究竟是什麼?它會在未來給我們的世界帶來顛覆性改變嗎?它會讓未來的程式設計師丟掉飯碗嗎?它與目前流行的低代碼開發是不是一回事兒?這從另外一個角度佐證了編程是創富和改變世界的「神筆」這一說法。幾年前,微軟的聯合創始人保羅·艾倫在回憶起當年寫下的那幾行代碼時非常感慨:「沒想到那幾行代碼竟然帶領微軟公司走到了今天。」現在大部分人的電腦上都運行著微軟的作業系統,微軟也成了世界上市值最高的公司之一,深刻地影響了全世界。
  • 讀書報告 | 《編程珠璣》200110900108
    優秀的程式設計師都有點懶,他們願意等待著靈機一動的出現而不是急於使用最開始的想法編寫,不過這必須通過在適當的時候編寫代碼來加以平衡,二惡這個時候又源於解決問題和反思答案而獲得的經驗。第三章 數據決定程序結構恰當的數據視圖實際上決定了程序的結構很多程序都能通過重新組織內部數據結構來使之變得更小。