摘要:使用這么久對(duì)于數(shù)組的相關(guān)方法一直都是拿來就用對(duì)于方法更是常用。不過對(duì)于多個(gè)數(shù)組合并的時(shí)候因?yàn)榉祷氐氖切聰?shù)組,可以鏈?zhǔn)较氯ァ?/p>
使用JS這么久, 對(duì)于JS數(shù)組的相關(guān)方法一直都是拿來就用,對(duì)于push方法更是常用。但是在一次用到contact方法的時(shí)候自問了一句: push和contact到底有哪些區(qū)別?
先看下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"]
摘取重點(diǎn):
push方法添加元素到數(shù)組末尾,改變的是同一個(gè)數(shù)組, 返回值是添加之后數(shù)組的長度
contact方法是合并兩個(gè)或者多個(gè)數(shù)組,不會(huì)改變存在的數(shù)組,返回的是合并的數(shù)組
那性能會(huì)不會(huì)有區(qū)別?
環(huán)境: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
在我這個(gè)環(huán)境上push+解構(gòu)的性能是要好于contact的。不過對(duì)于多個(gè)數(shù)組合并的時(shí)候, contact因?yàn)榉祷氐氖切聰?shù)組,可以鏈?zhǔn)较氯ァ?/strong>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92849.html
摘要:將多個(gè)字符串拼接在一起,通常有以下三種方法,在實(shí)踐中都是經(jīng)常用到的。先把字符串寫入臨時(shí)數(shù)組中,然后調(diào)用數(shù)組的方法,將其中的字符串元素連接起來。使用字符串的函數(shù)。 將多個(gè)字符串拼接在一起,通常有以下三種方法,在實(shí)踐中都是經(jīng)常用到的。 使用字符串連接符 ‘+’, string1 + string2 + ... 使用數(shù)組的join函數(shù)。先把字符串寫入臨時(shí)數(shù)組中,然后調(diào)用數(shù)組的join方法,...
摘要:本文記錄關(guān)于數(shù)組的一些常用方法,搜集總結(jié)。對(duì)于數(shù)組中的每個(gè)元素,都會(huì)調(diào)用函數(shù)一次。返回值是一個(gè)新數(shù)組,其中的每個(gè)元素均為關(guān)聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。 本文記錄關(guān)于js數(shù)組的一些常用方法,搜集總結(jié)。 主要思路: 1. 方法功能是什么 2. 傳遞的參數(shù)是什么 3. 返回值是什么 4. 原來的數(shù)組是否改變 第一組:關(guān)于數(shù)組的增加、刪除和修改 1.push 向數(shù)組末尾增加新的...
摘要:一函數(shù)調(diào)用的種模式方法調(diào)用模式當(dāng)一個(gè)函數(shù)被保存為對(duì)象的一個(gè)屬性時(shí),我們稱它為一個(gè)方法。二函數(shù)常用的三個(gè)方法在指定值和參數(shù)參數(shù)以數(shù)組或類數(shù)組對(duì)象的形式存在的情況下調(diào)用某個(gè)函數(shù)。當(dāng)綁定函數(shù)被調(diào)用時(shí),該參數(shù)會(huì)作為原函數(shù)運(yùn)行時(shí)的指向。 一、函數(shù)調(diào)用的4種模式 (1) 方法調(diào)用模式 當(dāng)一個(gè)函數(shù)被保存為對(duì)象的一個(gè)屬性時(shí),我們稱它為一個(gè)方法。當(dāng)一個(gè)方法被調(diào)用時(shí),this 被綁定到該對(duì)象。如果調(diào)用表達(dá)...
摘要:通過對(duì)一系列任務(wù)建模來理解一些非常重要的函數(shù)式編程在列表操作中的價(jià)值一些些看起來不像列表的語句作為列表操作,而不是單獨(dú)執(zhí)行。映射我們將采用最基礎(chǔ)和最簡單的操作來開啟函數(shù)式編程列表操作的探索。函子是采用運(yùn)算函數(shù)有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著...
摘要:數(shù)組是值得有序集合。數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。不同數(shù)組自動(dòng)更新。數(shù)組對(duì)象繼承上的大量數(shù)組操作方法字符串和數(shù)組字符串可以理解為類數(shù)組,但它不是數(shù)組博客地址不完全入門之?dāng)?shù)組歡迎交流指正 數(shù)組是值得有序集合。每個(gè)值叫做元素,每個(gè)元素在數(shù)組中都有數(shù)字位置編號(hào),也就是索引。JS中的數(shù)組是弱類型的,數(shù)組中可以含有不同類型的元素。數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。 var arr = [1,...
閱讀 2808·2023-04-25 18:06
閱讀 2603·2021-11-22 09:34
閱讀 1697·2021-11-08 13:16
閱讀 1323·2021-09-24 09:47
閱讀 3059·2019-08-30 15:44
閱讀 2784·2019-08-29 17:24
閱讀 2597·2019-08-23 18:37
閱讀 2446·2019-08-23 16:55