成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS數(shù)組:push vs concat

animabear / 569人閱讀

摘要:使用這么久對(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í)候自問了一句: pushcontact到底有哪些區(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

相關(guān)文章

  • js運(yùn)算性能系列】拼接字符串的方法及性能比較

    摘要:將多個(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方法,...

    周國輝 評(píng)論0 收藏0
  • JavaScript數(shù)組——常用數(shù)組方法匯總

    摘要:本文記錄關(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ù)組末尾增加新的...

    HollisChuang 評(píng)論0 收藏0
  • js函數(shù)調(diào)用模式和常用的幾個(gè)方法

    摘要:一函數(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á)...

    zhigoo 評(píng)論0 收藏0
  • 翻譯連載 | JavaScript輕量級(jí)函數(shù)式編程-第 8 章:列表操作 |《你不知道的JS》姊妹篇

    摘要:通過對(duì)一系列任務(wù)建模來理解一些非常重要的函數(shù)式編程在列表操作中的價(jià)值一些些看起來不像列表的語句作為列表操作,而不是單獨(dú)執(zhí)行。映射我們將采用最基礎(chǔ)和最簡單的操作來開啟函數(shù)式編程列表操作的探索。函子是采用運(yùn)算函數(shù)有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著...

    sPeng 評(píng)論0 收藏0
  • js不完全入門之數(shù)組

    摘要:數(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,...

    bergwhite 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<