面试狗带的第一天
1. 怎么判断一个字符串里面是否有重复的元素
let a = 'stringsss'
let b = a.split("")
function abs() {
let c = []
for(let i=0; i<b.length; i++){
if(c.indexOf(b[i])===-1){
c.push(b[i])
}
}
if(c.length<b.length){
console.log('重复')
}else{
console.log('无重复')
}
}
abs()
2. js数组去重
方法1:for循环遍历+indexOf
var cars = ["BMW", "Volvo", "Audi", "Audi"];
function abs(){
var carsNewArray = [];
for (i = 0; i < cars.length; i++) {
if(carsNewArray.indexOf(cars[i])==-1){
carsNewArray.push(cars[i])
}
}
return carsNewArray
}
abs()
方法2: ES6的set对象方法
var cc = new Set(cars)
console.log(cc)
3.字符串AAAAAAAbbbCCCC按照重复的元素排序输出ACb
let theString = "AAAAAAAbbbCCCC"
let newObj = {}
function getStr(value){
for(let i = 0; i<value.length; i++){
let charAt = value.charAt(i)
if(newObj[charAt]){
newObj[charAt]++
}else{
newObj[charAt] = 1
}
}
}
getStr(theString)
let rank = Object.keys(newObj).sort((a,b)=> newObj[b]-newObj[a]).join('')
console.log(rank)
面试狗带的第四天
1.闭包
function warp(){
function inner(){
let name = "Lisa"
return name
}
return warp
}
console.log(warp())
console.log(warp()())
// function inner(){
// let name = "Lisa"
// return name
// }
// Lisa
2. 算法
求100以内的质数
3.提取下面数组相同项,以相同项的value值来作为key组成一个二维数组
[{
id: 111,
name: 'Lisa',
state:1,
rank: 1
company: '腾讯科技'
},{
id: 112,
name: 'Lily',
state:0,
rank: 1
company: '顺丰科技'
},{
id: 113,
name: 'Frank',
state:0,
rank: 1
company: '哈哈科技'
},{
id: 114,
name: 'Clover',
state:1,
rank: 1
company: '拉布拉布科技'
},{
id: 115,
name: 'Nika',
state:1,
rank: 1
company: '腾讯科技'
}
]
4.写一个电话号码的正则表达式