DIV CSS 佈局教程網

JavaScript編程題
編輯:JavaScript基礎知識     

1. 用reduce統計一個數組中有多少個不重復的單詞

var arr = ["apple","orange","apple","orange","pear","orange"];

function getWordCnt(){
  return arr.reduce(function(prev,next,index,arr){
    prev[next] = (prev[next] + 1) || 1; //這句是重點
    return prev;
  },{});
}

console.log(getWordCnt());

2.給定字符串 str,檢查其是否包含連續重復的字母(a-zA-Z),包含返回 true,否則返回 false

function containsRepeatingLetter(str) {
     return /([a-zA-Z])\1/.test(str); // \1指代第一個括號的匹配項
}

在正則表達式中,利用()進行分組,使用斜槓加數字表示引用,\1就是引用第一個分組,\2就是引用第二個分組。將[a-zA-Z]做為一個分組,然後引用,就可以判斷是否有連續重復的字母。

3.已知fn為一個預定義函數,實現函數curryIt

需要補全的代碼

var fn = function(a, b, c) {
    return a + b + c
};
curryIt(fn)(1)(2)(3); //6

function curryIt(fn) {
    //這裡補充
}

可以試著玩一下,這裡是用的函數的柯裡化

var fn = function(a, b, c) {
    return a + b + c
};
console.log(curryIt(fn)(1)(2)(3)); //6

function curryIt(fn) {
    var len = fn.length; //獲取函數形參數量
    var slice = Array.prototype.slice;
    var arg = slice.call(arguments, 1);
    return function() {
        arg = arg.concat(slice.call(arguments));
        if(arg.length < len) { //當等於函數需要的形參數量時候調用
            return arguments.callee;
        }else{
            return fn.apply(null,arg);
        }
    }
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved