title: JS常用功能小算法
字符串
1.为字符串每一个字符中插入其他字符(举例子:每一个字符之间插入空格)
```
function test (str) {
return str.split('').join(' ')
}
console.log(test('hello pig'))
```
控制台输出:h e l l o p i g
2.数组去重
-
es6方法
function uni (arr) { return Array.from(new Set(arr)) } var _arr = ['1', 22, 'aa', '1', 33, 33] console.log(uni(_arr))
再简单一点
const a = arr => [...new Set(arr)] console.log(a(['1', 22, 'aa', '1', 33, 33]))
控制台输出:['1', 22, 'aa', 33]
-
es5方法
var arr = [1, 3, 4, 4, 2, 3, 1] var arr1 = [] for (var i = 0; i < arr.length; i++) { if (arr1.indexof(arr[i]) < 0) { arr1.push(arr[i]) } } console.log(arr1)
控制台输出[1, 3, 4, 2]
3.数组并集
```
u (a, b) {
return Array.from(new Set([..a, ..b]))
}
console.log(u ([1,2,3,2,1], [3,2,1,5]))
```
控制台输出 [1,2,3,5]
4.数组交集
```
n (a, b) {
return Array.from(new Set([...a].filter(x => new Set(b).has(x))))
}
console.log(u ([1,2,3,2,1], [3,2,1,5]))
```
控制台输出 [1,2,3]
5.数组差级
```
cha (a, b) {
return [...a.filter(x => !new Set (b).has(x)), ...b.filter(x => !new Set (a).has(x))]
}
```
控制台输出 [5]
6.对应转换(举例数字月份转换成文字月份)
```
var mapTree = new Map([['01','一月'],['02','二月'],['03','三月'],['04','四月'],['05','五月'],['06','六月'],['07','七月'],['08','八月'],['09','九月'],['10','十月'],['11','十一月'],['12','十二月']])
console.log(mapTree.get('01'))
```
控制台输出 一月
7.检测一个变量是否为某一个类型(三种方式)
```
typeof(obj) === 'string'
typeof obj === 'string'
obj.constructor === 'string'
```
8.去掉字符串的空格
(1)正则+replace
const str = ' a a a f '
str = str.replace(/\s*/g, '')
console.log(str)
控制台输出:aaaf
(2)trim()
const str = ' a a a f '
console.log(str.trim())
控制台输出:a a a f(trim无法去掉中间的空格)
9.将某个字符串改写成驼峰形式(独立单词首字母大写)
```
let str = 'get-element-by-id'
let target = ''
let arr = str.split('-')
arr.forEach((item) => {
target += item.substr(0, 1).toUpperCase() + item.substr(1)
})
console.log(target)
```
控制台输出:GetElementById
10.随机抽取n个10-100的数
```
getNum (n) {
var arr = []
for (let i = 0; i < n ; i ++) {
arr.push(parseInt(Math.random() * 90 + 10))
}
return n
}
getNum(10)
```
控制台输出10个10-100之间的数字
找出数组中的最大差值
```
var arr = [1,3,13,234,234,11,334]
var minNum = arr[0]
var maxCha = 0
arr.forEach((item) => {
minNum = Math.min(minNum, item)
let cha = item - minNum
maxCha = Math.max(maxCha, cha)
})
console.log(maxCha)
```
控制台输出: 333
计算一个整数的阶乘
```
add (n) {
if (n == 1) {
return 1
} else {
return n * add(n-1)
}
}
console.log(add(5))
```
控制台输出 120
网友评论