JS常见的逻辑题⽬操作(常见⾯试逻辑题)1、将两个数组组合成⼀个升序数组(concat、sort)
(1)concat() ⽅法⽤于连接两个或多个数组,或者是具体的值
(2)sort() ⽅法⽤于对数组的元素进⾏排序,sort调⽤的是⼀个函数,函数可以传⼊两个变量(a,b),其返回值如下js合并两个数组
若 a ⼩于 b,在排序后的数组中 a 应该出现在 b 之前,则返回⼀个⼩于 0 的值。
若 a 等于 b,则返回 0。
若 a ⼤于 b,则返回⼀个⼤于 0 的值。
var a = [1, 2, 6]
var b = [4, 2, 7]
var c = a.concat(b)
console.log(c) // [1, 2, 6, 4, 2, 7]
function aruduce (x, y) {
return x - y
}
c.sort(aruduce) // [1, 2, 2, 4, 6, 7]
// 排序简洁版本
[1,2,3,4].sort((a, b) => a - b); // [1, 2,3,4],默认是升序
[1,2,3,4].sort((a, b) => b - a); // [4,3,2,1] 降序
2、数组去重
(1)indexOf() ⽅法可返回某个指定的字符串值在字符串中⾸次出现的位置
var res = [1,2,3,3,4,5,5,6,6,7,7,8]
var ad = res.filter((item, index, self) => {
return self.indexOf(item) === index
})
console.log(ad) // [1, 2, 3, 4, 5, 6, 7, 8]
(2)第⼆种⽅式 new Set⽅式
var arr = [ 'a', 'a' ,'b', 'c', 'abc']
var result = [ ...new Set(arr) ]
console.log(result)
VM187:3 (4) ["a", "b", "c", "abc"]
3、求两个数组的交集
(1)indexOf() ⽅法可返回某个指定的字符串值在字符串中⾸次出现的位置
var a = [1,2,3,4,5,6,7,7,7,7]
var b = [1,0,9,8,7,6]
var c = []
a.forEach((item,index) => {
if (b.indexOf(item) !== -1) {
c.push(item)
}
})
console.log(c) // [1, 6, 7, 7, 7, 7]
4、求最⼤值最⼩值(可以把this换成null,求最⼩值的时候把max换成min)
// ⽅法⼀
var one = [1,2,3,4,5,6,7,2,1,4]
Math.max.apply(this, one) // 7
/
/ ⽅法⼆
var one = [1,2,3,4,5,6,7,2,1,4]
Math.max(...one)  // 7
5、数组的合并
// ⽅法⼀
var a = [1,1,2,4]
var b = [5,6,7]
b.map(item => {
console.log(item)
a.push(item)
})
console.log(a) // [1, 1, 2, 4, 5, 6, 7]
// ⽅法⼆
[1,2,3,4].concat([5,6]) //[1,2,3,4,5,6]
// ⽅法三
[...[1,2,3,4],...[4,5]] //[1,2,3,4,5,6]
6、判断是否包含指 ,其中includes(),find(),findIndex()是ES6的api
// 1  includes 存在的话返回true;不包含返回false
[1,2,3].includes(4) // false
// 2  indexOf  存在的话返回索引;不存在返回-1
[1,2,3].indexOf(4) // -1
// 3  find  存在的话返回具体的值;不存在返回undefined
[1, 2, 3].find((item)=>{return item===3}) // 3
// 4  findIndex  存在的话返回对应的索引;不存在返回-1
[1, 2, 3].findIndex((item)=>{return item===3}) // 2
7、三个数组求交集
var ArrFun = function (array1,array2,array3){
let newArr = []
// 求交集只需要遍历⼀个数组就⾏
array1.forEach((element)=>{
// 到返回数据,不到返回undefined
let newAr2 = array2.find(item => item === element)
let newAr3 = array3.find(item => item === element)
if(newAr2 && newAr3) newArr.push(element)
})
return newArr
}
ArrFun([1,5,3,4,2],[1,2,5,7,9],[1,3,4,5,8])  // [1,5]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。