p
在JavaScript編程過程中,數(shù)組是一種最基本、最常用的數(shù)據(jù)類型。有時(shí)候我們需要對兩個(gè)數(shù)組進(jìn)行操作,這時(shí)候就需要比較、合并、過濾等操作。下面將會(huì)介紹一些JavaScript中兩個(gè)數(shù)組的常見操作,并且結(jié)合示例代碼進(jìn)行講解。
p
1. 比較兩個(gè)數(shù)組
比較兩個(gè)數(shù)組,可以使用JavaScript原生的equal()函數(shù),或者使用循環(huán)遍歷比較每一個(gè)元素。equal()函數(shù)比較兩個(gè)數(shù)組是否相等,如果數(shù)組中存在子數(shù)組等等,則equal函數(shù)只比較引用地址;因此在某些情況下,equal函數(shù)可能無法比較兩個(gè)數(shù)組是否相等,這時(shí)候我們就需要使用循環(huán)遍歷,通過比較每一個(gè)元素的方式來確定兩個(gè)數(shù)組是否相等。
<code> let arr1 = [1, 2, 3]; let arr2 = [1, 2, 3]; console.log(arr1 == arr2); // false console.log(arr1 === arr2); // false function compareArray(arr1, arr2) { if (arr1.length != arr2.length) return false; for (var i = 0; i < arr1.length; i ++) if (arr1[i] !== arr2[i]) return false; return true; } console.log(compareArray(arr1, arr2)); // truep 2. 數(shù)組合并操作 合并數(shù)組的方法比較簡單,可以使用JavaScript原生的concat()函數(shù),或者使用ES6中的擴(kuò)展運(yùn)算符(...)來進(jìn)行數(shù)組合并。二者區(qū)別在于concat函數(shù)是返回一個(gè)新數(shù)組,而使用擴(kuò)展運(yùn)算符是會(huì)修改原來的數(shù)組,將新的元素添加到尾部,并返回一個(gè)新的數(shù)組指向合并后的數(shù)組。
<code> let arr1 = [1, 2, 3]; let arr2 = [4, 5, 6]; let result1 = arr1.concat(arr2); console.log(result1); // [1, 2, 3, 4, 5, 6] let result2 = [...arr1, ...arr2]; console.log(result2); // [1, 2, 3, 4, 5, 6] // 修改原數(shù)組 let arr3 = [1, 2, 3]; let arr4 = [4, 5, 6]; arr3.push(...arr4); console.log(arr3); // [1, 2, 3, 4, 5, 6]p 3. 數(shù)組過濾操作 過濾操作常見使用場景是對數(shù)據(jù)進(jìn)行篩選,可以使用JavaScript原生的filter()函數(shù),可以傳入一個(gè)回調(diào)函數(shù),該函數(shù)對每一個(gè)數(shù)組元素進(jìn)行判斷,返回true的就會(huì)加入到新的數(shù)組中。下面是示例代碼:
<code> let numbers = [1, 2, 3, 4, 5, 6]; let evens = numbers.filter(function(item) { return item % 2 === 0; }); console.log(evens); // [2, 4, 6]p 在JavaScript中操作數(shù)組可以說是非常基礎(chǔ)、常見的操作,因此熟練掌握數(shù)組的常見操作是編寫JavaScript程序的基礎(chǔ)。本文介紹了常見的三種操作方式:比較、合并和過濾,不過這僅僅是冰山一角。JavaScript數(shù)組操作非常多樣,只有不斷實(shí)踐和嘗試,才能選擇出不同場景下最合適的方法。