方法一:
var arr = "helloollehword";
var object = {
};
for(var i = 0;i < arr.length;i++){
var key = arr[i];
if(object[key]){
object[key]++;
} else {
object[key] = 1
}
}
console.log(object);
方法二:(拿到字符串里面关于l的次数)
var arr = "helloollehword";
var len = arr.length;
var array = arr.replace(/l/g,"");
var len1 = array.length;
var lengthTimes = len-len1;
console.log(lengthTimes);
2、数组去重
方法一:
var array = [1,2,3,4,5,3,21,1,2,3];
var set = new Set(array);
var result = Array.from(set);
console.log(result);
方法二:
var array = [1,2,3,4,5,3,21,1,2,3];
var temp = [];
for(let index = 0;index < array.length;index++){
if(temp.indexOf(array[index]) == -1){
temp.push(array[index])
}
}
console.log(temp);
3、判断字符串中出现大写字母的个数和小写个数
方法一:
var str = "abc1231ABDCfelDef";
var min = 0;
var max = 0;
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code >= 65 && code <= 90) {
max++;
}
if (code >= 97 && code <= 122) {
min++;
}
}
console.log("小写字母:" + min);
console.log("大写字母:" + max);
方法二:
var str = "abc1231ABDCfelDef";
var min = str.length - str.replace(/[a-z]/g,"").length;
var max = str.length - str.replace(/[/A-Z]/g,"").length;
console.log("小写字母:" + min);
console.log("大写字母:" + max);
// 选择排序: 从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮
var arr = [1, 20, 4, 60, 10, 35, 65, 18];
// 外层循环 控制比较轮数
for (var i = 0; i < arr.length - 1; i++) {
var main = i; //假设,main为最小值对应的索引值 // main = 1 20
// 内层循环,控制每轮的比较次数
// 每一轮开始先和那个元素开始比较:i+1
for (var j = i + 1; j < arr.length; j++) { // j = 20 4
if (arr[main] > arr[j]) { //如果 mian > j 即用第一个数来比较其他的数
main = j;
}
}
// 找出最小值,进行元素交换
// 如果最小值的索引值不是假设的索引,需要交换位置
if (main != i) {
let temp = 0;
temp = arr[i];
arr[i] = arr[main];
arr[main] = temp;
}
}
console.log(arr); //1, 4, 10, 18,20, 35, 60, 65
6、获取数组中的最大值和最小值
6.1、排序法
var a = [7, 48, 10, 23, 19];
// 排序(从小到大排序)
a.sort(function(a, b) {
return a - b;
});
// 拿到最小值
var min = a[0];
// 拿到最大值
var max = a[a.length - 1];
console.log("最小值:" + min);
console.log("最大值:" + max);
//结果:
最小值:7
最大值:48
6.2、假设法
麻烦:
// 获取最大值:
var arr = [22, 13, 6, 55, 30];
var max = arr[0];
for (var i = 1; i < arr.length; i++) {
var cur = arr[i];
cur > max ? (max = cur) : null;
}
console.log("最大值:" + max); // 55
// 获取最小值:
var array = [22, 13, 6, 55, 30];
var min = array[0];
for (var j = 1; j < array.length; j++) {
var cur1 = array[j];
cur1 < min ? (min = cur1) : null;
}
console.log("最小值:" + min); // 6
简写:
var array = [22,13,6,55,30];
var min = array[0];
var max = array[0];
for(var i = 0;i<array.length;i++){
var count = array[i];
count > max ? (max = count) : null;
count < min ? (min = count) : null;
}
console.log("最小值:" + min);
console.log("最大值:" + max);
结果:
最小值:6
最大值:55
6.3、使用Math的方法实现
var array = [22,13,6,55,30];
var max = Math.max.apply(null,array);
var min = Math.min.apply(null,array);
console.log("最小值:" + min);
console.log("最大值:" + max);
var str = "abcdef";
console.log( str.split("").reverse().join("") );');
//分解
var str="abcdefg";
var a=str.split(""); //先拆分成数组
var b=str.split("").reverse(); //再反转,但还是数组
var c=str.split("").reverse().join("");//最后把数组变成字符串
9.2、使用遍历的方法
var str2 = "abc";
var str2arr = str2.split("");
console.log(str2arr);
var arr = [];
for (var i = str2arr.length - 1; i >= 0; i--) {
arr.push(str2arr[i]);
}
console.log("反转后的字符串为:", arr.join(""));
//结果
cba
9.3、使用unshift()方法
var str3 = "abc";
var str3arr = str3.split("");
var arr3 = [];
for (var i = 0; i < str3arr.length; i++) {
arr3.unshift(str3arr[i]);
}
console.log("反转后的字符串为:", arr3.join(""));