//去除字符串前后的空格
function trim(str) {
if (str && typeof str === "string") {
return str.replace(/(^\s*)|(\s*)$/g,""); //去除前后空白符
}
}
str1 = ' hello world ';
console.log(trim(str1)); //hello world
//调用原生js库trim()方法
console.log(str1.trim()); //hello world
// 统计字符串中字母个数或统计最多字母数
function strCount(str){
var obj = {};
for(var i=0;i<str.length;i++){
var v = str.charAt(i);
if(obj[v] && obj[v].value == v){
// obj[v].count = ++ obj[v].count;
++ obj[v].count;
}else{
obj[v] = {};
obj[v].value = v;
obj[v].count = 1;
}
}
return obj;
}
console.log(strCount("aaaabbbccccddfgh"));
// { a: { value: 'a', count: 4 },
// b: { value: 'b', count: 3 },
// c: { value: 'c', count: 4 },
// d: { value: 'd', count: 2 },
// f: { value: 'f', count: 1 },
// g: { value: 'g', count: 1 },
// h: { value: 'h', count: 1 } }
// 去除数组里面重叠的元素
function unique(arr){
var newArr = [];
for(var i=0,len=arr.length; i<len; i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique([1,2,2,2,3,3,3,4,5,6])); //[ 1, 2, 3, 4, 5, 6 ]
//判断是否是回文串
function isPalindrome(str) {
str = str.replace(/\W/g, '').toLowerCase();
return (str == str.split('').reverse().join(''));
}
console.log(isPalindrome("level")); // logs 'true'
console.log(isPalindrome("levels")); // logs 'false'
console.log(isPalindrome("A car, a man, a maraca")); // logs 'true'
// 写一个sum函数使以下两种调用方式都正确。
// console.log(sum(2,3)); // Outputs 5
// console.log(sum(2)(3)); // Outputs 5
//方法1
function sum(x) {
if (arguments.length == 2) {
return arguments[0] + arguments[1];
} else {
return function(y) { return x + y; };
}
}
//方法2
function sum(x, y) {
if (y !== undefined) {
return x + y;
} else {
return function(y) { return x + y; };
}
}
//大数阶乘
//大整数阶乘的结果超出了导致js数值类型溢出,因此考虑用字符串保存结果来计算
function f(n) {
var a = [1];
for (var i = 1; i <= n; i++) {
for (var j = 0, c = 0; j < a.length || c != 0; j++) {
var m = (j < a.length) ? (i * a[j] + c) : c;
a[j] = m % 10;
c = (m - a[j]) / 10;
}
}
return a.reverse().join("");
}
console.log(f(1000));