成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

(JavaScript) 合并數(shù)組的方法

econi / 2144人閱讀

摘要:添加元素到數(shù)組合并兩個(gè)數(shù)組錯(cuò)誤方法應(yīng)該用方法,將被的數(shù)組當(dāng)成參數(shù)數(shù)組。會(huì)改變數(shù)組,返回最新屬性,占用內(nèi)存較少。

一、Array.prototype.concat()

concat方法將創(chuàng)建一個(gè)新的數(shù)組,然后將調(diào)用它的對(duì)象(this指向的對(duì)象)中的元素以及所有參數(shù)中的數(shù)組類型的參數(shù)中的元素以及非數(shù)組類型的參數(shù)本身按照順序放入這個(gè)新數(shù)組,并返回該數(shù)組
concat方法并不修改調(diào)用它的對(duì)象(this指向的對(duì)象)和參數(shù)中的各個(gè)數(shù)組本身的值,而是將他們的每個(gè)元素拷貝一份放在組合成的新數(shù)組中。原數(shù)組中的元素有兩種被拷貝的方式:

對(duì)象引用(非對(duì)象直接量):concat方法會(huì)復(fù)制對(duì)象引用放到組合的新數(shù)組里,原數(shù)組和新數(shù)組中的對(duì)象引用都指向同一個(gè)實(shí)際的對(duì)象,所以,當(dāng)實(shí)際的對(duì)象被修改時(shí),兩個(gè)數(shù)組也同時(shí)會(huì)被修改,如:原數(shù)組和新數(shù)組里都有一個(gè)對(duì)象obj,如果改變其屬性,則原數(shù)組與新數(shù)組里的obj屬性都發(fā)生變化。

字符串和數(shù)字(是原始值,而不是包裝原始值的StringNumber對(duì)象):concat方法會(huì)復(fù)制字符串和數(shù)字的值放到新數(shù)組里。

1. 連接兩個(gè)數(shù)組
var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];

// 組成新數(shù)組 ["a", "b", "c", 1, 2, 3]; 原數(shù)組 alpha 和 numeric 未被修改
var alphaNumeric = alpha.concat(numeric);
2. 連接三個(gè)數(shù)組
var num1 = [1, 2, 3];
var num2 = [4, 5, 6];
var num3 = [7, 8, 9];

// 組成新數(shù)組[1, 2, 3, 4, 5, 6, 7, 8, 9]; 原數(shù)組 num1, num2, num3 未被修改
var nums = num1.concat(num2, num3);
3. 將非數(shù)組值合并到數(shù)組里
var alpha = ["a", "b", "c"];

// 組成新數(shù)組 ["a", "b", "c", 1, 2, 3], 原alpha數(shù)組未被修改
var alphaNumeric = alpha.concat(1, [2, 3]);
二、Array.prototype.push()

push()方法添加一個(gè)或多個(gè)元素到數(shù)組的末尾,并返回?cái)?shù)組新的長(zhǎng)度(length屬性值)

arr.push(element1, ..., elementN)

1. 添加元素到數(shù)組
var sports = ["soccer", "baseball"];
var total = sports.push("football", "swimming");

console.log(sports); // ["soccer", "baseball", "football", "swimming"]
console.log(total);  // 4
2. 合并兩個(gè)數(shù)組

錯(cuò)誤方法

var sports1 = ["soccer", "baseball"];
var sports2 = ["football", "swimming"];

var total = sports1.push(sports2);
    
/* or */

var total = Array.prototype.push.call(sports1, sports2);
    
console.log(sports1);    // ["soccter", "baseball", ["football", "swimming"]]

應(yīng)該用apply方法,將被push的數(shù)組當(dāng)成參數(shù)數(shù)組。

var sports1 = ["soccer", "baseball"];
var sports2 = ["football", "swimming"];

var total = Array.prototype.push.apply(sports1, sports2);
console.log(sports1);    // ["soccter", "baseball", "football", "swimming"]
三、選擇哪個(gè)方法

Array.prototype.concat()返回一個(gè)新數(shù)組,不會(huì)改變?cè)瓟?shù)組,但是會(huì)占用較多內(nèi)存。

Array.prototype.push()會(huì)改變this數(shù)組,返回最新length屬性,占用內(nèi)存較少。

參考:

Array.prototype.concat() - MDN

Array.prototype.push() - MDN

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79524.html

相關(guān)文章

  • JavaScript數(shù)組方法數(shù)組合并

    摘要:可以看到,方法,簡(jiǎn)潔高效,且能實(shí)現(xiàn)多個(gè)數(shù)組合并并且能夠?qū)崿F(xiàn)深度嵌套注意最后還是使用了哦,換成是不可以的。多個(gè)數(shù)組合并原生的方法可以簡(jiǎn)單實(shí)現(xiàn)多個(gè)數(shù)組合并,比如會(huì)返回至于其他方法,應(yīng)該只是一個(gè)接口的問題,可以像下面這樣實(shí)現(xiàn)。 網(wǎng)易前端面試的時(shí)候,面試官問我有幾種數(shù)組合并的方法,當(dāng)時(shí)第一反應(yīng)就是concat,但是面試官說幾種,我尋思著原生js方法好像也只有concat呀,就說不改變?cè)瓟?shù)組的話...

    izhuhaodev 評(píng)論0 收藏0
  • JavaScript 小技巧之數(shù)組合并

    摘要:對(duì)于一些小數(shù)組來說,這樣做當(dāng)然沒有問題。第一個(gè)主要問題在于,我們將要追加的數(shù)組的元素?cái)?shù)量翻倍了當(dāng)然是臨時(shí)性的,因?yàn)閷?shí)質(zhì)上要將數(shù)組內(nèi)容拷貝到函數(shù)調(diào)用棧上。所以,假如要追加的數(shù)組中有一百萬個(gè)元素,那么幾乎一定會(huì)超過函數(shù)和的調(diào)用棧限制的大小。 原文鏈接: https://davidwalsh.name/combi... 這是一篇介紹 JavaScript 技術(shù)的小短文。我們將會(huì)講到組合/合并...

    張率功 評(píng)論0 收藏0
  • JavaScript數(shù)組合并數(shù)組排列組合

    array.push.apply() 該方法會(huì)改變?cè)瓟?shù)組 var arr1 = [1,2]; var arr2 = [aa,as]; arr1.push.apply(arr1, arr2); console.log(arr1); //[1, 2, aa, as] console.log(arr2); //[aa, as] n個(gè)數(shù)組合并成一個(gè)數(shù)組 var obj = { 1...

    ranwu 評(píng)論0 收藏0
  • Javascript數(shù)組常用方法

    摘要:數(shù)組常用方法介紹刪除數(shù)組最后一位元素。開始下標(biāo)刪除個(gè)數(shù),插入元素可以多個(gè)注意當(dāng)數(shù)組執(zhí)行上面的這些方法時(shí),都會(huì)修改原數(shù)組。輸出從數(shù)組中找出所有符合指定條件的元素。內(nèi)容返回將數(shù)組合成一個(gè)值。合并數(shù)組或合并數(shù)組的值。 JavaScript 數(shù)組常用方法介紹 array.pop – 刪除數(shù)組最后一位元素。 var arr = [1, 2, 3]; arr.pop();// 返回 3 arr;/...

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

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

0條評(píng)論

econi

|高級(jí)講師

TA的文章

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