1.数组去重
如果数组为空或长度小于二则不需要去重,直接返回即可;
长度大于二时,创建一个新数组用来接收去重后的数组,
利用lastIndexOf遍历res数组,当不存在的时候,就把该位置的数push到res中。
function remove(arr){
if(arr===null||arr.length<2){
return arr;
};
let res=[];
for(var i=0;i<arr.length;i++){
if(res.lastIndexOf(arr[i])==-1){
res.push(arr[i]);
}
}
return res;
}
console.log(remove([1,3,3,3,1,5,6,7,8,1])) // [1,3,5,6,7,8]
2.删掉重复字符
和上题类似,区别就是这个是字符串,上个是数组,但区别不大
也是将不存在的字符添加到新字符串中即可,如果要返回原字符串,我认为将新字符串再赋给原字符串就行。
var str='aaabbbcccab';
var str1='';
for(var i = 0; i<str.length;i++){
if(str1.lastIndexOf(str[i])== -1){
str1 += str[i]
}
}
console.log(str1)
3.判断是否为回文
把字符串从中间劈开,分别用两头的比较,相等就比较下一个,
有一处不相同就不是回文。
function huiWen(str){
if (!str || str.length < 2) {
return;
}
for(let i = 0; i < str.length/2; i++){
if (str[i] !== str[str.length-1-i]) {
return false;
}
}
return true;
}
console.log(huiWen("asdfdsa"))
4.判断数组中是否含有给定数的两数之和
如果不是数组,或者数组长度小于二则不存在,直接返回;
数组长度大于二时,遍历数组是否含有num与第i位数的差,有则true。
function twoSum(arr,num){
if (!arr || arr.length < 2) {
return;
};
for(let i = 0; i < arr.length; i++){
let subStract = num - arr[i];
if (arr.lastIndexOf(subStract)!= -1) {
return true;
}
}
return false;
}
console.log(twoSum([6,4,3,2,1,7], 9)); // true
5.连字符转化为驼峰(例:get-element-by-id 转为 getElementById)
首先分割成数组,从数组下标1开始,把每个元素第一个字母转为大写,再加上每个元素下标为1以后的字符,最后合并成字符串。
let str = 'get-element-by-id';
let arr = str.split('-');
for(let i=1; i<arr.length; i++){
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
}
console.log(arr.join('')); // getElementById
————————————————
版权声明:本文为CSDN博主「Allison-L」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40141473/article/details/102304056
6.排序
选择排序
function xuanze(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}
var arr=[1,23,4,32,1,32,54,65,24];
console.log(xuanze(arr));
冒泡排序
function maopao(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
var arr=[1,23,4,32,1,32,54,65,24];
console.log(maopao(arr));