const getMaxFrequencyChar = (str) => {
const sortSrt = str.split("").sort().join("")
const hashMap = {}
let maxCount = 1
let maxIndex = 0
for (i = 0; i < sortSrt.length; i++) {
if (hashMap[sortSrt[i]]) {
hashMap[sortSrt[i]]++
if (hashMap[sortSrt[i]] > maxCount) {
maxCount = hashMap[sortSrt[i]]
maxIndex = i
}
}
else { hashMap[sortSrt[i]] = 1 }
}
return sortSrt[maxIndex]
}
console.log(getMaxFrequencyChar(`cadcaaafaffffffba`))
const transCamel = (str) => {
const arrSrt = str.split("")
for (i = 0; i < arrSrt.length; i++) {
if (arrSrt[i] === '-') {
arrSrt[i] = ""
arrSrt[i + 1] = arrSrt[i + 1].toUpperCase()
}
}
return arrSrt.join("")
}
console.log(transCamel('get-page-result'))
function strToCam (str) {
const arr = str.split('_')
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1)
}
return arr.join('')
}
console.log(strToCam('get_page_result'))
const name = 'getTest'
function camToStr (name) {
var arr = name.split('')
for (var i = 1; i < arr.length; i++) {
if (/[A-Z]/.test(arr[i])) {
arr[i] = '_' + arr[i].toLowerCase()
}
}
return arr.join('')
}
camToStr (name)
```JavaScript
const getQueryFromUrl = (str) => {
const result = {}
const target = str.split("?")[1].split("&")
for (i = 0
let pair = target[i].split("=")
if (result[pair[0]]) {
result[pair[0]] = [...result[pair[0]], pair[1]]
}
else { result[pair[0]] = pair[1] }
}
return result
}
console.log(getQueryFromUrl('https://www.zhipin.com/web/geek/chat?p1=a&p2=n&p2=b'))
const mySqrt = (n) => {
if (n < 0) return NaN;
if (n === 0 || n === 1) return n
let val = n;
let last = 0;
do {
console.log(val, last)
last = val;
val = (val + n / val) / 2;
}
while (Math.abs(val - last) > Number.EPSILON)
return val.toFixed(4)
}
console.log(mySqrt(3))
const data = [{ userId: 1, title: 'title1' }, { userId: 2, title: 'other' }, { userId: 3, title: null }, { userId: 4, title: 'title2' }]
const find = function (origin) {
return {
value: origin,
where(object) {
for (const key in object) {
if (Object.prototype.hasOwnProperty.call(object, key)) {
const element = object[key];
if (typeof element === 'function') {
this.value = this.value.filter(item => element(item[key], item))
} else {
this.value = this.value.filter(item => element.test(item[key]))
}
}
}
return this
},
orderBy(key, sort) {
return this.value.sort((a, b) => sort !== 'desc' ? a[key] - b[key] : b[key] - a[key])
}
}
}
console.log(find(data)
.where({
'title': /\d$/,
})
.orderBy('userId', 'desc'));
console.log(find(data)
.where({
'title': /\d$/,
'userId': (userId) => userId === 1
})
.orderBy('userId', 'desc'));
function Chunk(arr = [], size = 1) {
return arr.length
? arr.reduce(
(items, item) => {
items[items.length - 1].length === size
? items.push([item])
: items[items.length - 1].push(item);
return items;
},
[[]]
)
: [];
}