日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端面试题-数组去重和排序

發(fā)布時間:2025/3/21 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端面试题-数组去重和排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先,不好意思,我昨天偷懶了,沒有更新面試題,今日補上昨日的鍋。

基于上次的對象轉(zhuǎn)化題目,不少同學指出對象種的數(shù)組如果長度不一樣,不能滿足功能,所以針對這個進行優(yōu)化,代碼如下所示:

<script> let obj = {0: [44, 67],1: [90, 43, 56],2: [56, 67, 33],3: [80, 96, 45]};function getArr(obj) {if (typeof obj != "object") {console.warn("參數(shù)不正確");return;}const arr = [];// 遍歷對象的每一個對象for (var item in obj) {if (obj.hasOwnProperty(item) === true) {// map取對象每一個total對應的值取賦值obj[item].map((i, index) => {if (!arr[index]) {arr[index] = [];}arr[index].push(obj[item][index]);});}}return arr;}console.log(getArr(obj)); </script>

如果你有不同的方法,或者更好的方法請來信(email:785784961@qq.com)

這里需要注意的是:

1.封裝函數(shù)的入?yún)㈩愋团袛?#xff0c;并且給出友好的提示,比如警告,或者入?yún)⑹纠?/span>

2.使用for in 遍歷對象會遍歷原型鏈,需要我們判斷一下

3.對于遍歷中新生成的數(shù)組要判斷是否有沒有

4.開發(fā)代碼中調(diào)試時,盡量使用console.log()來打印值,減少alert()使用

5.封裝插件要寫好readme,或者在js中寫好注釋

6.可以的化,建議使用包管理,實現(xiàn)安裝操作,即npm發(fā)布

進入數(shù)組去重的操作,看一下題目

<script> // 2019-3-5 今日面試題,數(shù)組去重let m = [1, 2, 2],n = [2, 3, 3];// 返回 m 和n 的不重復的元素,并且按照從小到大排序let arr = [1,2,3] </script>

這道題的考查點:

1.數(shù)組的合并

2.數(shù)組排序

3.數(shù)組去重

首先我們進入es6快速實現(xiàn)的過程,定義一個箭頭函數(shù),使用new Set 合并數(shù)組,再用sort方法去排序,最后Array.from生成新的數(shù)組,就可以搞定了

<script> // 2019-3-5 今日面試題,數(shù)組去重let m = [1, 2, 2],n = [2, 3, 3];// 返回 m 和n 的不重復的元素,并且按照從小到大排序 const func = (m, n) =>Array.from(new Set(m.concat(n))).sort((a, b) => a - b);console.log(func(m, n)); </script>

第二種:常規(guī)的方法es5

<script>// 2019-3-5 今日面試題,數(shù)組去重let m = [1, 2, 2],n = [2, 3, 3];// 返回 m 和n 的不重復的元素,并且按照從小到大排序// 第二種方法function getArr(m, n) {for (var i = 0; i < n.length; i++) {if (m.indexOf(n[i]) < 0) {m.push(n[i]);}}var arr = [];for (var l = 0; l < m.length; l++) {if (arr.indexOf(m[l]) == -1) {arr.push(m[l]);}}arr = arr.sort(function(x, y) {return x - y;});return arr;}console.log(getArr(m, n));</script>

如果降序的話的第二種交互sort中y-x就好了

<script>// 2019-3-5 今日面試題,數(shù)組去重let m = [1, 2, 2],n = [2, 3, 3];// 返回 m 和n 的不重復的元素,并且按照從小到大排序// 第二種方法function getArr(m, n) {for (var i = 0; i < n.length; i++) {if (m.indexOf(n[i]) < 0) {m.push(n[i]);}}var arr = [];for (var l = 0; l < m.length; l++) {if (arr.indexOf(m[l]) == -1) {arr.push(m[l]);}}arr = arr.sort(function(x, y) {return y- x;});return arr;}console.log(getArr(m, n));</script>

注意:

1.這里我們沒有判斷入?yún)㈩愋?#xff0c;需要調(diào)用函數(shù)時注意一下,需要是數(shù)組類型

2.日常開發(fā)中,前端和后端會約定數(shù)據(jù)類型,一般不會改變類型,所以我們可以省略類型判斷,減少數(shù)據(jù)處理的時間

3.需要考慮的點,上面數(shù)組量數(shù)據(jù)過大如何處理,如何快速排序

2019-3-6面試題

<script> // 2019-3-6 面試題,時間格式轉(zhuǎn)化let data= {create_time:'2019-02-05T08:14:28.000Z'};// 將上面的時間進行格式化,按照入?yún)⑿问椒祷匾幌?種形式// 第一種let time1 = '2019-02-05'// 第二種 let time2 = '2019-02-05 08:14:28'// 第三種 let time3 = '2019年02月05日 上午8點14分'// 請在下面函數(shù)補充完整function getTime(time,type){} </script>

?

轉(zhuǎn)載于:https://www.cnblogs.com/starryqian/p/10488616.html

總結(jié)

以上是生活随笔為你收集整理的前端面试题-数组去重和排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。