3.6、查找数组中某一项出现的次数和下标

一、次数就是数组的长度、下标就是数组中的每一项

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))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值