JS数组常见面试题

发布于:2023-01-20 ⋅ 阅读:(163) ⋅ 点赞:(0)

一.数组去重

方法1.indexOf

var qwe = [5, 4, 3, 2, 1,77,77,2,1,33]; function Char(num) { var a = [] for (var i = 0; i < num.length; i++) { if (a.indexOf(num[i]) == -1) { a.push(num[i]) } } return a } console.log(Char(qwe))

2.Set(es6)

var qwe = [5, 4, 3, 2, 1,1,2,3,4,5]; function unique (arr) { return Array.from(new Set(arr)) } console.log(unique(qwe))

二.数组排序

1.倒序(返回的是原数组)

reverse()

var arr = [5, 4, 3, 2, 1,9,33,1]; console.log(arr.reverse())

2.正序从小到大sort(a,b)=>a-b

从大到小sort(a,b)=>b-a

var arr = [5, 4, 3, 2, 1,9,6,33]; console.log(arr.sort((a,b)=>a-b))

3.冒泡排序(相邻的数据进行两两比较,小数放在前面,大数放在后面,这样一趟下来,最小的数就被排在了第一位,第二趟也是如此,如此类推,直到所有的数据排序完成。)

var arr = [4,23,100,9,7,49,36,57]; console.log("原始数据:"+arr); for(var i=0;i<arr.length-1;i++){//确定轮数 for(var j=0;j<arr.length-i-1;j++){//确定每次比较的次数 if(arr[j]>arr[j+1]){ tem = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tem; } } console.log("第"+i+"次排序"+arr) } console.log("最终排序:"+arr)

三.判断数组中的最大值和最小值

1.使用for循环一边数组,在里面做判断,大于或小于存进去

var num=[2,3,4,2,1,2,4,6,7,8,55,3,2,8] function findMin(num){ var a = num[0]; for(var i =0;i<num.length;i++){ if(a > num[i]){ a = num[i] } } return a } function findMax(num) { var a = num[0]; for (var i = 0; i < num.length; i++) { if (a < num[i]) { a = num[i] } } return a } console.log(findMax(num))

2.Math.max或者min

var num=[2,3,4,2,1,2,4,6,7,8,55,3,2,8,88] function Max(arr){ return Math.max(...arr) } console.log(Max(num))

四.拼接数组(concat,push)

concat:拼接比较费时

const arr1 = [4,23,100,9,7,49,36,57]; const arr=[1,2,3,4,9] function qwe(a,b){ const c= a.concat(...b) return c } console.log(qwe(arr1,arr))

push:返回是数组的长度

const arr1 = [4,23,100,9,7,49,36,57]; const arr=[1,2,3,4,9] function qwe(a,b){ const c= a.push(...b) return c } console.log(qwe(arr1,arr))


网站公告

今日签到

点亮在社区的每一天
去签到