javascript - 计算题

// for...in 循环和 for...of 循环的区别

for(var item of arr){...}  // item 代表数组中的每一项
for(var item in arr){...}  // item 代表数组中每一项的索引

for(var item in obj){...}  // item 代表对象的 key 值

1,获取字符串中出现最多的字符,并返回它出现的次数?

var str = "aldsfoweifjsljfowe"
var obj = {}
for(var i = 0;i < str.length; i++) {
    var item = str.charAt(i)
    if (!obj[item]) {
        obj[item] = 1
    } else {
        obj[item] += 1
    }
}
console.log(obj)

var maxChar = ''
var maxNum = 0
for(var key in obj) {
    if (obj[key] > maxNum) {
        maxNum = obj[key]
        maxChar = key
    }
}
console.log('出现最多的字符是:' + maxChar + ',次数是:' + maxNum)

2,数组去重

(1)使用对象计数的方式

var arr = [1,2,3,4,3,4,3,2]

var obj = {}
var temp = []
for(var item of arr) {
    if (!obj[item]) {
        obj[item] = 1
        temp.push(item)
    }
}
console.log(temp)

(2)使用数组对象的 indexOf 方法

var arr = [1,2,3,4,3,4,3,2]

var temp = []
for(var item of arr) {
    if(temp.indexOf(item) < 0) {
        temp.push(item)
    }
}
console.log(temp)

3,获取数组的最大值 和 最小值

var arr = [1,2,3,4,5,6,4,3,2,3]
var max = Math.max.apply(null, arr)
var min = Math.min.apply(null, arr)

4,对数组进行排序: sort 方法

var arr  = [4,2,5,6,4,2,3,4]

function sortFunc(a, b) {
    reture a - b  // 由小到大
    // return b - a  // 由大到小
}
arr = arr.sort(sortFunc)
console.log(arr)

5,实现数组的翻转(非 reverse 方法)

var arr = [1,2,3,4,5]
var len = arr.length
var temp = []

for (var i = 0;i<len;i++) {
    var num = arr.pop()
    temp.push(num)
    // 或者
    // var num = arr.shift()
    // temp.unshift(num)
}

猜你喜欢

转载自blog.csdn.net/M_wolf/article/details/81542292