您好,登錄后才能下訂單哦!
本篇內容主要講解“JavaScript的concat方法怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript的concat方法怎么使用”吧!
JavaScript concat() 方法
定義和用法
concat() 方法用于連接兩個或多個數組。
該方法不會改變現有的數組,而是返回一個新的數組。
用途: 合并2個或多個數組
變量名 | value1,value2,value3,…,valueN | |
---|---|---|
詳細描述 | 值或者數組(可以傳對象) | |
是否必傳 | 否 |
要注意,concat返回的是一個淺拷貝
示例:
const arr = [1, 2, 3].concat([4, 5]) console.log(arr) // [1,2,3,4,5]
const arr1 = [1, 2] const arr2 = [3, 4] const arr3 = [5, 6] const arr4 = arr1.concat(arr2, arr3) console.log(arr4) // [1, 2, 3, 4, 5, 6]
const arr1 = [1, 2] const arr2 = 3 const arr3 = [5, 6] const arr4 = arr1.concat(arr2, arr3) console.log(arr4) // [1, 2, 3, 5, 6]
talk is cheap,show you my code
const arr1 = [[1]] const arr2 = [3, 4] const arr3 = [5, 6] const arr4 = arr1.concat(arr2, arr3) console.log(arr4) // [[1], 3, 4, 5, 6] arr1[0].push(2) console.log(arr4) // [[1, 2], 3, 4, 5, 6]
const arr1 = [1] const arr2 = [3, 4] const arr3 = [5, 6] const arr4 = arr1.concat(arr2, arr3) console.log(arr4) // [1, 3, 4, 5, 6] arr1.push(2) console.log(arr4) // [1, 3, 4, 5, 6]
說點通俗點,如果連接的數組中有引用類型,那么這個引用類型是共享的,其實吧,剛開始我說的返回的是淺拷貝,你就應該懂了。
const arr1 = [1] const arr2 = [3, 4] const arr3 = { a: 1, b: 2 } const arr4 = arr1.concat(arr2, arr3) console.log(arr4) // [1, 3, 4, {a:1, b:2}]
Symbol.isConcatSpreadable
對象有一個Symbol.isConcatSpreadable屬性,表示在使用concat方法是是否展開(注意這里是作為參數時是否展開)
數組是默認展開的
對象是默認不展開的
const arr1 = [1] const arr2 = [3, 4] const arr3 = arr1.concat(arr2) console.log(arr3) // [1, 3, 4] arr2展開了
const arr1 = [1] const arr2 = [3, 4] arr2[Symbol.isConcatSpreadable] = false const arr3 = arr1.concat(arr2) console.log(arr3) // [1,[3,4]] arr2沒有展開
const arr1 = [1] const obj2 = { a: 1, b: 2 } const arr3 = arr1.concat(obj2) console.log(arr3) // [1,{a:1, b:2}] 對象默認不展開
const arr1 = [1] const obj2 = { // 注意這個地方要加length屬性,如果你要展開的話 length: 2, 0: 2, 1: 3 } obj2[Symbol.isConcatSpreadable] = true const arr3 = arr1.concat(obj2) console.log(arr3) // [1,2,3]
示例
const str1 = 'aa' const str2 = str1.concat('bb') console.log(str2) // aabb
到此,相信大家對“JavaScript的concat方法怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。