// 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)
}