CVTE2109春招筆試第一場前端程式設計題

2021-09-12 15:32:28 字數 1011 閱讀 9875

題目大概意思:給定兩個維度不確定的陣列,求它們之間不重複的資料合集,返回乙個新陣列

(備:在當時的題目,並沒有說明陣列中資料的準確型別,本次採用了字串和數值混合的資料來測試)

如給定:

arr1 = [11, 25, 44, [52, 44, 23], '52']

arr2 = [16, 25, 17, [11, 25, [23, 18]]]

返回:[52, "52", 16, 17, 18]

本次需要考慮的問題:

1、陣列降維

因為陣列的維度是不確定的,我們需要做的是把兩個陣列都轉換成一維陣列。

在es6中,提供了這麼乙個方法

array.prototype.flat()
在陣列的層次不確定時,可以使用infinity關鍵字作為引數,即:

array.prototype.flat(infinity)
2、使用物件來判斷資料出現的次數

本次需要的資料是:兩個陣列合併後只出現一次的資料,這裡我想到的是採用物件的鍵值對方法,但是由於普通物件的鍵是字串型別,對於陣列中同時出現字串和數值型別則無法判斷,所以我採用map集合來儲存資料,map集合是es6提供的乙個完整的hash結構,鍵可以是任意型別

**如下:

function fn(arr1, arr2));

for(let [key, val] of map.entries())

}return res;

}

測試**:

let arr1 = [11, 25, 44, [52, 44, 23], '52'];

let arr2 = [16, 25, 17, [11, 25, [23, 18]]];

console.log(fn(arr1, arr2));

結果:

[52, "52", 16, 17, 18]

CVTE2109春招筆試第一場前端程式設計題

題目大概意思 給定兩個維度不確定的陣列,求它們之間不重複的資料合集,返回乙個新陣列 備 在當時的題目,並沒有說明陣列中資料的準確型別,本次採用了字串和數值混合的資料來測試 如給定 arr1 11,25,44,52,44,23 52 arr2 16,25,17,11,25,23,18 返回 52,52...

CVTE2109春招筆試第一場前端程式設計題

題目大概意思 給定兩個維度不確定的陣列,求它們之間不重複的資料合集,返回乙個新陣列 備 在當時的題目,並沒有說明陣列中資料的準確型別,本次採用了字串和數值混合的資料來測試 如給定 arr1 11,25,44,52,44,23 52 arr2 16,25,17,11,25,23,18 返回 52,52...

CVTE2109春招筆試第一場前端程式設計題

題目大概意思 給定兩個維度不確定的陣列,求它們之間不重複的資料合集,返回乙個新陣列 備 在當時的題目,並沒有說明陣列中資料的準確型別,本次採用了字串和數值混合的資料來測試 如給定 arr1 11,25,44,52,44,23 52 arr2 16,25,17,11,25,23,18 返回 52,52...