一、JS合併兩個數組
在JS中,可以使用concat()方法將兩個數組合併成一個新數組。concat()方法不會改變原數組。示例如下:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.concat(arr2);
console.log(arr3); //[1, 2, 3, 4, 5, 6]
二、JS合併兩個有序數組
如果需要將兩個有序數組合併成一個有序數組,可以使用歸併排序法。基本思路是將兩個有序數組從頭開始比較,將較小的數存入新數組中,並將相應的指針移動一個位置。具體實現如下:
function mergeArr(arr1, arr2) {
const result = [];
let i = 0,
j = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] < arr2[j]) {
result.push(arr1[i++]);
} else {
result.push(arr2[j++]);
}
}
while (i < arr1.length) {
result.push(arr1[i++]);
}
while (j < arr2.length) {
result.push(arr2[j++]);
}
return result;
}
const arr1 = [1, 3, 5, 7];
const arr2 = [2, 4, 6, 8];
const arr3 = mergeArr(arr1, arr2);
console.log(arr3); //[1, 2, 3, 4, 5, 6, 7, 8]
三、JS兩個數組合併成一個數組
如果兩個數組中可能存在相同的元素,可以使用concat()方法將兩個數組合併,再使用Set去重。Set是ES6中引入的一種新的數據結構,它類似於數組,但是只能儲存唯一的值。具體實現如下:
const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
const arr3 = Array.from(new Set(arr1.concat(arr2)));
console.log(arr3); //[1, 2, 3, 4]
四、JS數組去重合併、數組合併去重
如果要直接對已有數組進行去重合併或者合併去重,可以使用Set和擴展運算符。具體實現如下:
const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
//數組去重合併
const arr3 = Array.from(new Set([...arr1, ...arr2]));
console.log(arr3); //[1, 2, 3, 4]
//數組合併去重
const arr4 = [...new Set([...arr1, ...arr2])];
console.log(arr4); //[1, 2, 3, 4]
五、JS把兩個數組對象合併
如果兩個數組中的元素是一個個對象,則需要按照對象的某個屬性進行去重。可以將對象轉換為字符串再使用Set去重,最後再將字符串重新轉換為對象。具體實現如下:
const arr1 = [{id: 1, name: 'Tom'}, {id: 2, name: 'Jerry'}];
const arr2 = [{id: 2, name: 'Jerry'}, {id: 3, name: 'Lucy'}];
//按照id進行去重合併
const arr3 = Array.from(new Set([...arr1.map(JSON.stringify), ...arr2.map(JSON.stringify)])).map(JSON.parse);
console.log(arr3); //[{id: 1, name: 'Tom'}, {id: 2, name: 'Jerry'}, {id: 3, name: 'Lucy'}]
原創文章,作者:FXTCB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371015.html