摘要:使用這么久對于數組的相關方法一直都是拿來就用對于方法更是常用。不過對于多個數組合并的時候因為返回的是新數組,可以鏈式下去。
使用JS這么久, 對于JS數組的相關方法一直都是拿來就用,對于push方法更是常用。但是在一次用到contact方法的時候自問了一句: push和contact到底有哪些區別?
先看下MDN的定義:
【push】:adds one or more elements to the end of an array and returns the new length of the array.
var animals = ["pigs", "goats", "sheep"]; console.log(animals.push("cows")); // expected output: 4 console.log(animals); // expected output: Array ["pigs", "goats", "sheep", "cows"] animals.push(["new arr"]); // expected output: 5 console.log(animals); // expected output: Array ["pigs", "goats", "sheep", "cows", Array(1)]
【contact】:The concat() method is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array.
var array1 = ["a", "b", "c"]; var array2 = ["d", "e", "f"]; console.log(array1.concat(array2)); // expected output: Array ["a", "b", "c", "d", "e", "f"] console.log(array1); // expected output: Array ["a", "b", "c"] console.log(array2); // expected output: Array ["d", "e", "f"]
摘取重點:
push方法添加元素到數組末尾,改變的是同一個數組, 返回值是添加之后數組的長度
contact方法是合并兩個或者多個數組,不會改變存在的數組,返回的是合并的數組
那性能會不會有區別?
環境:win8.1 chrome 63.0.3239.132
// push demo var arr3 = [1, 2, 3]; var arr4 = [4, 5, 6]; console.time("push"); for (let index = 10000; index > 0; index--) { arr3.push(...arr4); } console.timeEnd("push"); // push: 2.39892578125ms
// contact demo var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; console.time("contact"); for (let index = 10000; index > 0; index--) { arr1 = arr1.concat(arr2); } console.timeEnd("contact"); // contact: 312.762939453125ms
在我這個環境上push+解構的性能是要好于contact的。不過對于多個數組合并的時候, contact因為返回的是新數組,可以鏈式下去。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92849.html
摘要:將多個字符串拼接在一起,通常有以下三種方法,在實踐中都是經常用到的。先把字符串寫入臨時數組中,然后調用數組的方法,將其中的字符串元素連接起來。使用字符串的函數。 將多個字符串拼接在一起,通常有以下三種方法,在實踐中都是經常用到的。 使用字符串連接符 ‘+’, string1 + string2 + ... 使用數組的join函數。先把字符串寫入臨時數組中,然后調用數組的join方法,...
摘要:本文記錄關于數組的一些常用方法,搜集總結。對于數組中的每個元素,都會調用函數一次。返回值是一個新數組,其中的每個元素均為關聯的原始數組元素的回調函數返回值。 本文記錄關于js數組的一些常用方法,搜集總結。 主要思路: 1. 方法功能是什么 2. 傳遞的參數是什么 3. 返回值是什么 4. 原來的數組是否改變 第一組:關于數組的增加、刪除和修改 1.push 向數組末尾增加新的...
摘要:一函數調用的種模式方法調用模式當一個函數被保存為對象的一個屬性時,我們稱它為一個方法。二函數常用的三個方法在指定值和參數參數以數組或類數組對象的形式存在的情況下調用某個函數。當綁定函數被調用時,該參數會作為原函數運行時的指向。 一、函數調用的4種模式 (1) 方法調用模式 當一個函數被保存為對象的一個屬性時,我們稱它為一個方法。當一個方法被調用時,this 被綁定到該對象。如果調用表達...
摘要:通過對一系列任務建模來理解一些非常重要的函數式編程在列表操作中的價值一些些看起來不像列表的語句作為列表操作,而不是單獨執行。映射我們將采用最基礎和最簡單的操作來開啟函數式編程列表操作的探索。函子是采用運算函數有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關于譯者:這是一個流淌著...
摘要:數組是值得有序集合。數組元素甚至可以是對象或其它數組。不同數組自動更新。數組對象繼承上的大量數組操作方法字符串和數組字符串可以理解為類數組,但它不是數組博客地址不完全入門之數組歡迎交流指正 數組是值得有序集合。每個值叫做元素,每個元素在數組中都有數字位置編號,也就是索引。JS中的數組是弱類型的,數組中可以含有不同類型的元素。數組元素甚至可以是對象或其它數組。 var arr = [1,...
閱讀 2784·2023-04-25 18:06
閱讀 2576·2021-11-22 09:34
閱讀 1684·2021-11-08 13:16
閱讀 1302·2021-09-24 09:47
閱讀 3049·2019-08-30 15:44
閱讀 2773·2019-08-29 17:24
閱讀 2584·2019-08-23 18:37
閱讀 2433·2019-08-23 16:55