1. 程式人生 > >小結concat()、slice()、splice()操作方法

小結concat()、slice()、splice()操作方法

            今天繼續來總結一下ECMAscript為操作已經包含在陣列中的項提供了很多方法。第一個先講concat()方法。

       這個方法可以理解為一種合併。concat()方法的具體用法是:它可以建立當前陣列的一個副本,然後將接受到的引數新增到這個副本的末尾,最後返回新構建的陣列。這裡又分三種情況。(1)在沒有給concat()方法傳遞引數的情況下,它只是複製當前陣列並返回副本。(2)如果傳遞給concat()方法的是一或多個數組,則該方法會將這些陣列中的每一項都新增到結果陣列中。(3)如果傳遞的值不是陣列,這些值就會被簡單地新增到結果陣列的末尾。

var colors=["red","green","blue"];
var colors2=colors.concat("yellow",["black","brown"]);

alert(colors);
alert(colors2);
       分析一下,以上程式碼開始定義了一個包含3個值的陣列colors。然後,基於colors呼叫了concat()方法,並傳入字串“yellow”和一個包含"black"和"brown"的陣列。最終,結果陣列colors2中包含了"red"、"green"、"blue"、"yellow"、"black"和"brown"。至於原來的陣列colors,其值仍然保持不變注意:concat()方法是在陣列的副本上進行操作並返回新構建的陣列,所以並不會影響到原來的陣列。

第二個方法是slice(),它能夠基於當前陣列中的一個或多個項建立一個新陣列。slice()方法可以接受一或兩個引數,即要返回項的起始和結束位置。這裡又產生了兩種情況:(1)在只有一個引數的情況下,slice()方法返回從該引數指定位置開始到當前陣列末尾的所有項。(2)如果有兩個引數,該方法返回起始和結束位置之間的項,注意但不包括結束位置的項。同時還要注意的是,slice()方法不會影響到原始陣列,因為它是基於當前陣列中的一個或多個項建立的一個新陣列。

var colors=["red","green","blue","yellow","purple"];
var colors2=colors.slice(1);
var colors3=colors.slice(1,4);

alert(colors2);  //green,blue,yellow,purple
alert(colors3);  //green,blue,yellow
注意:如果slice()方法的引數中有一個負數,則用陣列長度加上該數來確定相應的位置。如,在一個包含5項的陣列上呼叫slice(-2,-1)與呼叫slice(3,4)得到的結果相同。如果結束位置小於起始位置,則返回空陣列。

最後來介紹splice()方法,這個方法恐怕要算是最強大的陣列方法了,它有很多種用法。splice()的主要用途是向陣列的中部插入項,但使用這種方法的方式則有如下3種:

       (1)刪除:可以刪除任意數量的項,只需指定2個引數:要刪除的第一項的位置和要刪除的項數。例如,splice(0,2)會刪除陣列中的前兩項。

       (2)插入:可以向指定位置插入任意數量的項,只需提供3個引數:起始位置、0(要刪除的項數)和要插入的項。如

splice(2,0,"red","green")
會從當前陣列的位置2開始插入字串"red"和"green"。

       (3)替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定3個引數:起始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如

splice(2,1,"red","green")
會刪除當前陣列位置2的項,然後再從位置2開始插入字串"red"和"green"。

注意:splice()方法始終都會返回一個數組,該陣列中包含從原始陣列中刪除的項(如果沒有刪除任何項,則返回一個空陣列)。下面的程式碼展示了上述3種使用splice()方法的方式。

        第一種:刪除第一項

var colors=["red","green","blue"];
var removed=colors.splice(0,1);
alert(colors);      //green,blue
alert(removed);   //red,返回的陣列中只包含一項
        第二種:從位置1開始插入兩項
<span style="font-size:18px;">removed=colors.splice(1,0,"yellow","orange");
alert(colors);    //green,yellow,orange,blue
alert(removed);   //返回的是一個空陣列</span>

             第三種:插入兩項,刪除一項

removed=colors.splice(1,1,"red","purple");
alert(colors);
alert(removed);


相關推薦

小結concat()slice()splice()操作方法

            今天繼續來總結一下ECMAscript為操作已經包含在陣列中的項提供了很多方法。第一個先講concat()方法。        這個方法可以理解為一種合併。concat()方法的具體用法是:它可以建立當前陣列的一個副本,然後將接受到的引數新增到這個副

JavaScript陣列的操作方法concatslicesplice

ECMAScript 為運算元組中的項提供了很多方法,其中最常用的有:concat( ) 、slice( ) 和 splice( ) 。 concat ( ) concat ( ) 方法可以基於當前陣列中的項建立一個新的陣列。具體來說,這個方法會先建立一個當前陣列的副本,然後將

javascript中substring()slice()substr()方法的區別

start 指定 art bsp ava color 目的 開始 www substring()方法用於提取字符串中介於兩個指定下標之間的字符。 stringObject.substring(start,stop)slice() 方法可提取字符串的某個部分,並以新的字

Go語言基礎:arrayslicemake和new操作map

array 陣列宣告和賦值 go的陣列宣告跟C語言很相似,除了陣列型別放在變數名後面【這點跟變數的宣告一樣】。 陣列的定義格式: //一維陣列 var 陣列名[n] 陣列型別 //需要注意的是:'[n]'可以寫成'[...]',go會自動根據元素個數來計

技術筆記:字串List陣列日期等常見操作方法

string類 string s="ABC科學";int i=s.IndexOf("科");//字串的搜尋。 int n=string.Compare(s1,s2);//n=0則兩個相同。n< 0

javascript的字串方法【substringslicesubstr】的區別

老忘,然後看mdn。這裡總結下,記錄一筆,好記性不如爛筆頭: String.prototype.substring: 這個方法傳遞的是字串下標的索引位置,返回新的被擷取的字串,不會改變

Go 資料型別(續)— arrayslicemap

Go 將常用的資料結構陣列(array)、切片(slice)、對映(map)實現為內建型別。可以利用 array 在列表中進行多個值的排序,或者使用更加靈活的:slice。字典或雜湊型別同樣可以使用,在 Go 中叫做 map。 1、array 陣列定義

HEVC之tilessliceslice segmentCUPUTU分析

(一)(1)   編碼樹單元(CTU)和編碼樹塊(CTB)結構:在之前的標準中,編碼層的核心是巨集塊,一個巨集塊包含一個16×16的亮度塊,以及對於常用的4:2:0取樣格式來說還包含兩個8×8的色度塊;而在HEVC中類似的結構為編碼樹單元(CTU),其尺寸由編碼器進行指定且可

slicesubstringsubstrconcat這幾個不會破壞原始字串的操作方法

字串操作方法中的concat、slice、substring、substr都不會破壞原陣列,會自動返回操作後新的陣列。concat用於連線兩個或多個字串字串,支援鏈式操作,但一般情況下使用加號運算子更簡便快捷。slice、substring、substr都支援一個或兩個引數,

區分slicesplicesplitjoin方法

關於字串和陣列的方法,我們經常會用到,下面就詳細的區分下slice、splice、split、join方法,加深下記憶並做個筆記。 slice (陣列) 定義和用法 slice()方法提取部分的陣列元素,返回包含提取元素的新陣列,不會改變原陣列。

String的slicesplit方法;Array的slicesplice方法

1、字串的slice:用於從原字串取出子字串並返回,不改變原字串。它的第一個引數是子字串的開始位置,第二個引數是子字串的結束位置(不含該位置)。 var s="hello-word"; var r=s.slice(6); console.log(s);//hello-wor

JS陣列的slice()方法傳負數和字串操作函式中的slice()substr()substring()

定義和用法 slice() 方法可從已有的陣列中返回選定的元素。 語法 arrayObject.slice(start,end) 引數 描述 start 必需。規定從何處開始選取。如果是負數,那麼它規定從陣列尾部開始算起的位置。也就是說,-1 指最

JS陣列操作(陣列增加刪除翻轉轉字串取索引擷取(切片)slice剪接splice數組合並)

POP 刪除最後一項 刪除最後一項,並返回刪除元素的值;如果陣列為空則返回undefine var a = [1,2,3,4,5]; a.pop();//a:[1, 2, 3, 4] a.pop();//a:[1, 2, 3] a.pop();//a:[1, 2] shif

js中slicesplice用法與區別

delet 內容 title pan ont 指定 至少 一個 拷貝 1.slice(start,end)(參數可選) slice() 方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象。原始數組不會被修改。 var a = [‘a‘, ‘b‘

slice()splice()詳解

log 破壞 light clas logs 數組 刪除 ora 自己 前面在開發的時候對於slice()、splice()這兩個函數老是模糊不清,不清楚具體的參數傳參以及用法。 今天寫個筆記專門記錄一下。 1、slice() 從指定位置刪除數組裏面的元素,可以傳一個或者

python基礎(5)---整型字符串列表元組字典內置方法和文件操作介紹

進制 res cde __init__ little 計算 技術分享 圖片 pos   對於python而言,一切事物都是對象,對象是基於類創建的,對象繼承了類的屬性,方法等特性     1.int   首先,我們來查看下int包含了哪些函數 # python3.x di

Python 中的字符串字典操作方法

art 長度 capital cap 指定 對象 位置 test 大括號 一、字符串 在python中字符串是一種重要數據類型。其他數據類型分別為: 數字-number -------- int、long、float、complex這幾種 字符串-string -----

splice 函數分別實現 pushpopshiftunshift 的方法

需要 param sam scrip eve code 函數實現 () ava 主要需要註意的是不同方法他們本身返回的值應該是什麽,是數組當前的長度,還是取出的元素的值,再在splice函數裏面進行相應的return就可以了。具體如下: 用 splice函數實現 pu

Python學習筆記字符串操作之isalpha()isalnum()isdecimal()isspace()和istitle()方法

itl brush .com light supper isalnum 如果 小寫 分割 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線------------------

sessionStoragelocalStoragecookie方法小結

特性 Cookie localStorage sessionStorage 資料的生命期 一般由伺服器生成,可設定失效時間。如果在瀏覽器端生成Cookie,預設是關閉瀏覽器後失效 除非