function deleteLess(str){
let obj = {}
for(let idx in str){
if(obj[str[idx]]) obj[str[idx]]++
obj[str[idx]] = 1
}
let keys = Object.keys(obj)
let valuses = Object.values(obj)
let minCount = Math.min(...valuses)
let minValue = keys[valuses.indexOf(minCount)]
return str.replace(eval(`/${minValue}/g`), '')
}
var str = 'abadc'
console.log(deleteLess(str)); // bdc
function deletePop(arr){
return arr.slice(0,arr.length - 1)
}
function add(arr,index,item){
return arr.splice(index,0,item) // index删除位置,0删除个数,item添加的内容
}
function getRepeat(arr){
return arr.filter((item,idx) => {
return arr.indexOf(item) && arr.lastIndexOf(item) != idx
})
}
// 获得对象非原型上的属性和值,添加到数组中
function iterate(obj) {
var res = []
for(var key in obj){
if(obj.hasOwnProperty(key)){
res.push(key + ': ' + obj[key])
}
}
return res;
}
//Object.keys()不会遍历原型上的属性
function iterate(obj) {
var res = Object.keys(obj).map(function(val){
return val + ': ' + obj[val]
})
return res;
}
//isNaN判定
function containsNumber(str) {
for(var i = 0;i<str.length;i++){
while(!isNaN(str[i])){
return true
}
}
return false
}
//正则
function containsNumber(str) {
//\d匹配是否有数字
var reg = /\d/
return reg.test(str)
}
function getRepeatNumber(str){
let obj = {}
let count = 0;
for(let i = 0; i < str.length; i++){
if(obj[str[i]]) obj[str[i]]++
else obj[str[i]] = 1
}
let keys = Object.keys(obj)
keys.forEach( key => {
if(obj[key] > 1) count++
})
return count
}
function fibonacci(n){
if(n == 1 || n == 2) return 1
return fibonacci(n - 1) + fibonacci(n -2)
}