1字符串回文的判断 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环 将一个字符串首尾倒序排列,如果与原字符串相等,则这个字符串回文。 反过来重新排列,具体的思路就是:
1.原先的字符串并不知道是什么情况,我们需要统一处理换成小写
2.用 plalindrome()函数 处理 将原来的字符串用split()转换为数组,
3.将数组反转用 reverse()函数,然后重新拼接起成新的字符串 join()
4.使用全等进行比较
5.参考资料 https://www.w3cplus.com/javascript/palindrome-check-in-javascript.html
6.还可以添加筛选的方法 str.replace(regexp|substr, newSubStr|function)
7.具体参数方法 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace
补充一点在 处理字符串的时候 toLowerCase() / toLocaleCase()是为了处理针对于特定地区的实现(土耳其)
var str1 = 'abcdefgh';
var str2 = 'abcdcba';
function plalindrome(str){
return str.toLowerCase() === str.toLowerCase().split('').reverse().join('');
/*
var re = /[\w_]/; // 或者 var re = /[A-Za-z0-9]/g;
var lowRegstr = str.toLowerCase().replace(re, '');
var reverseStr = loeRegstr.split('').reverse().join('');
return lowRegstr === reverseStr;
*/
}
console.log(plalindrome(str1));
console.log(plalindrome(str2));
数组去重 思路:简单来说就是通过新数组对原来数组的检索,判断数组元素是否重复 具体用到的 indexOf() 从0开始
var arr = [2,4,2,2,5,6,7,8,9,9,9];
function unique(arr){
var arr1 = [];
for(var i = 0; i < arr.length; i++){
// 要检索的字符串值没有出现,则该方法返回 -1。有的话你懂的
if(arr1.indexOf(arr[i]) == -1){
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr));
统计一个字符串中出现最多的字母 思路: 在另外一个数组中存放原数组每个元素出现的位置次数,且次数跟存放不重复数组的下标对应 然后取出最多的次数,对应的下标就是不重复数组里面那个出现次数最多的元素的下标 用的知识点
1.indexOf()
2.Math.max.apply() http://www.cnblogs.com/airbreak/p/4595424.html
js巧用apply方法实现数组最值,以及合并
var min = Math.min.apply(null, arr); 参数必须是数组
var max = Math.max.apply(null, arr);
Array.prototype.push.apply(arrA, arrB); // 将数组 arrB push 到 数组 arrA 中
var str1 = "jhadfgskjfajhdewqe";
var arr = str1.split('');
function MostUnit1(){
var arr1 = [];
var arr2 = [];
for( var i=0; i<arr.length;i++){
if(arr1.indexOf(arr[i]) == -1){
arr1.push(arr[i]);
arr2.push(1);
}else{
arr2[arr1.indexOf(arr[i])] ++;
}
}
console.log(arr2);
console.log(arr1[arr2.indexOf(Math.max.apply(Math,arr2))])
};
MostUnit1();