一、次数就是数组的长度、下标就是数组中的每一项
var arr = ['12', '122', '112', '1', '1', '1', '12', '1']
//原理最终返回一个数组 次数就是这个数组的长度,下标就是数组的每一项
function count(arr, item) {
var arr1 = []
for (var i = 0; i < arr.length; i++) {
if (arr[i] == item) {
arr1.push(i)
}
}
return arr1
}
console.log(count(arr, '1'))
二、查找字符串中某个字符出现的次数和下标
(数组的长度就是次数,每一项就是下标)
var str = '1231223212921236123'
//也是返回一个数组
function indexcount(str, item) {
var arr = []
var n = str.indexOf(item)
while (n !== -1) {
//while 循环适合未知次数得循环
arr.push(n)
n = str.indexOf(item, n + item.length)
}
return arr
}
console.log(indexcount(str, '12'))
三、字符串转驼峰
var str = 'font-size'
function tuofeng(str) {
//转数组
var arr = str.split('-')
console.log(arr) //["border", "left", "color"]
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i][0].toLocaleUpperCase() + arr[i].slice(1)
}
return arr.join('')
}
console.log(tuofeng(str)) //borderLeftColor
三、求10-100的10个不重复的随机数
function getrandom(max, min, len) {
var arr = []
for (var i = 0; i < len; i++) {
var n = Math.floor((Math.random() * max - min + 1) + min)
if (arr.indexOf(n) == -1) {
arr.push(n)
} else {
//法1
// len++
//法2
i--
}
}
return arr
}
console.log(getrandom(100, 10, 10))
四、查找数组中的最大值
var arr = ['12', '122', '112', '222', '14', '112', '12', '1']
// function maxvalue(arr) {
// var n = arr[0]
// for (var i = 1; i < arr.length; i++) {
// if (n < arr[i]) {
// //如果小于第一个值,就把他付给第一个值
// //如果不小就不会赋值
// n = arr[i]
// }
// }
// return n
// }
五、验证码的封装
var str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
// 方式一 打乱取前四位
function yanma(str, len) {
var arr = str.split('') //转成数组
arr.sort(function(x, y) {
return 0.5 - Math.random()
})
return arr.slice(0, len).join('')
}
console.log(yanma(str, 4))