1. 程式人生 > >幾種向陣列中新增元素方法的效能比較

幾種向陣列中新增元素方法的效能比較

引入:向一個數組中插入元素是平時很常見的一件事情。可以使用push在陣列尾部插入元素,可以用unshift在陣列頭部插入元素,也可以用splice在陣列中間插入元素。

雖然這些方法雖然常用,但並不意味著沒有更加高效的方法……

1.向陣列結尾新增元素

最常用的當然是arry.push()方法,但是下面的方法效率更高:

var arr = [1,2,3,4,5];
var arr2 = [];

arr.push(6);    //方法1
arr[arr.length] = 6;    //方法2
arr2 = arr.concat([6]);  //方法3

移動端效率:

最快的為

1.
arr[arr.length] = 6; // 平均 5 632 856 ops/sec 2. arr.push(6); // 慢35.64% 3. arr2 = arr.concat([6]); // 慢62.67%

PC端效率:

最快的為

1. arr[arr.length] = 6; // 平均42 345 449 ops/sec
2. arr.push(6); // 慢34.66%
3. arr2 = arr.concat([6]); // 慢85.79%

因此可見,向陣列結尾新增元素最快的方法是arr[arr.length]=xxx

2.向陣列的頭部新增元素

最常用的當然是arry.unshift()

方法,但是下面的方法效率更高:

var arr = [1,2,3,4,5];

arr.unshift(0);

[0].concat(arr);

移動端效率:

最快的為

1. [0].concat(arr); // 平均4 972 622 ops/sec
2. arr.unshift(0); // 慢64.70%

PC端效率:

最快的為

最快的為

1. [0].concat(arr); // 平均6 032 573 ops/sec
2. arr.unshift(0); // 慢78.65%

因此可見,向陣列結尾新增元素最快的方法是newArray.concat(array)

3.向陣列中間新增元素

使用splice可以簡單的向陣列中間新增元素,這也是最高效的方法。

var items = ['one', 'two', 'three', 'four'];
items.splice(items.length / 2, 0, 'hello');

相關推薦

陣列新增元素方法效能比較

引入:向一個數組中插入元素是平時很常見的一件事情。可以使用push在陣列尾部插入元素,可以用unshift在陣列頭部插入元素,也可以用splice在陣列中間插入元素。 雖然這些方法雖然常用,但並不意味著沒有更加高效的方法…… 1.向陣列結尾新增元素 最

JavaScript的陣列新增元素方法小結

在陣列的開頭新增新元素 - unshift()原始碼:?12345678910111213141516171819202122<!DOCTYPE html><html><body><p id="demo">Click the b

陣列新增一個元素

實現效果:    知識運用:   Array物件的Length屬性 int類的tryParse()方法 實現程式碼: int[] int_arr; //"隨機陣列"按鈕事件 private void button1_Click(object se

可變陣列新增元素崩潰。。。

.h 屬性: @property (copy,nonatomic) NSMutableArray *thingArrayIssue; @property (copy,nonatomic) NSMutableArray *siteArrayIssue; @property (

JavaScript 從陣列刪除元素方法

1.通過value值從陣列中刪除: function removeByValue(arr, val) { for (var i = 0; i < arr.length; i++) { if (arr[i] == val) { arr.spli

陣列新增資料但length列印為0?

最近寫專案時, 遇到了一個問題, 我明明 向陣列中push了資料, 但是列印的時候為[]陣列,但是空數組裡面有一條資料,length為1, 但是打印出來length發現長度為0 看程式碼 先來看這種情況 很正常對吧, 往陣列中push一組資料, 長度為1 往下看

陣列新增陣列

實現效果:    實現程式碼: static void Main(string[] args) { int index; Program pro = new Program(); int[] a

js 宣告陣列陣列新增物件變數

陣列有四種定義的方式  使用建構函式:  var a = new Array();  var b = new Array(10);  var c = new Array("first", "second", "third");  或者陣列直接量:  var d = ["fi

js如何陣列新增物件並通過ajax後臺傳遞list資料

js動態向陣列新增物件,並通過ajax提交List資料到後臺 var data=[{name: '張三',age: 18,id: 1},{name: '李四',age: 22,id: 2}]; var test= []; for (var i = 0; i < data.le

js陣列新增元素和刪除元素

一、給陣列中新增元素  1、arr.unshift(值);  給陣列的開頭壓入一個元素  2、arr.push(值);  給陣列的結尾壓入一個元素 二、刪除陣列中的元素  1、arr.pop();

java陣列插入元素

/** * * @Title: test_insert_array * @Description: 該方法的主要作用:像陣列中插入元素 * @param 設定檔案 * @retu

任務排程的 Java 實現方法比較

簡介:  綜觀目前的 Web 應用,多數應用都具備任務排程的功能。本文由淺入深介紹了幾種任務排程的 Java 實現方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,並對其優缺點進行比較,目的在於給需要開發任務排程的程式設計師提供

iOS去除陣列重複元素方法

//第一種:利用NSDictionary的allKeys(allValues)方法。 NSArray *array = @[@"2016-10-1",@"2016-10-9",

一個類,有新增元素(add)和獲取元素數量(size)方法。 啟動兩個線程。線程1容器新增數據。線程2監聽容器元素數量,當容器元素數量為5時,線程2輸出信息並終止

override tac trace add syn countdown print import 數據 方式一: /** * 兩個線程要是可見的所以要加上votalile */public class Test_01 { public static void

PHP從陣列刪除元素的四方法例項

刪除一個元素,且保持原有索引不變 使用 unset 函式,示例如下: <?php   $array = array(0 => "a", 1 => "b", 2 => "c")

JS刪除JSON陣列元素的兩方法:delete和splice

最近的需求中,需要從JSON陣列中刪除元素,之前不太瞭解,特地查了一下,總結一下: splice(startIndex,count);這個方法用於從陣列的第startIndex位開始,刪除count個元素。 說明: 1、滿足條件的元素直接被刪除,腳標重信排 2、sta

js一個數組插入元素方法-效能比較

向一個數組中插入元素是平時很常見的一件事情。你可以使用push在陣列尾部插入元素,可以用unshift在陣列頭部插入元素,也可以用splice在陣列中間插入元素。 但是這些已知的方法,並不意味著沒有更加高效的方法。讓我們接著往下看…… 向陣列結尾新增元素 向陣列結尾新增元素用push()

JS:呼叫方法實現陣列追加一個元素

  //(1)在陣列末尾追加一個元素,返回追追加元素後陣列的長度             var array=["String","Number","Undefined","Null","Boolean"];             var return_value=array.push(123);    

Js去除陣列重複元素的4方法

    今天工作遇到此問題,嘗試多個方法不盡人意,故此寫個部落格來總結一下如何在js中去除重複元素。     方法1:                 Array.prototype.method1 = function(){             var arr[

集合框架(一)續 集合新增一個集合、陣列和List之間的相互轉換、從集合刪除另一個集合所包含的元素

集合方法集結: import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.List