JavaScript (練習(xí)題)

  • 1.題目要求


    圖片.png

    答案

function get_letter_interval_2(number_a, number_b) {
  var r = [];
  var letter = ["", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
  if (number_a < number_b) {
    for (var i = number_a; i <= number_b; i++) {
      if (i % 26 === 0) {
        r.push(letter[Math.floor(i / 26) - 1].concat(letter[26]));
      }
      else {
        r.push(letter[Math.floor(i / 26)].concat(letter[i % 26]));
      }
    }
    return r;
  }
  if (number_a > number_b) {
    for (var j = number_a; j >= number_b; j--) {
      if (j % 26 === 0) {
        r.push(letter[Math.floor(j / 26) - 1].concat(letter[26]));
      }
      else {
        r.push(letter[Math.floor(j / 26)].concat(letter[j % 26]));
      }
    }
    return r;
 if (number_a = number_b) {
        r.push(letter[Math.floor( number_a/ 26)].concat(letter[number_a % 26]));
      }
     return r;
}
  • 2.從數(shù)組中選出不重復(fù)的數(shù)字
var collection = [1, 1, 1, 2, 2, 3, 4];

function choose_no_repeat_number(collection) {

  var result = [];

  result = collection.filter(function (value,index,array){   // filter()方法:檢測數(shù)值元素肥矢,并返回符合條件所有元素的數(shù)組。

  return index == array.indexOf(value); //indexof()方法:搜索數(shù)組中的元素局劲,并返回它所在的位置伟叛”龇看這個位置是否等于元素第一次出現(xiàn)的位置
  })
  return result;
}
  • 3.找出一個數(shù)組中元素出現(xiàn)頻率最高的元素
 var arr = [1, -1, 2, 4, 5, 5, 6, 7, 5, 8, 6];

        var m = {};
        var mnum = 0;
        var mmb;
        for (var i = 0; i < arr.length; i++) {
            var a = arr[i];
            m[a] === undefined ? m[a] = 1 : (m[a]++);
            if (m[a] > mnum) {
                mmb = a;
                mnum = m[a];
            }
        }
        document.write("出現(xiàn)頻率最高的元素為:" + mmb);  //出現(xiàn)頻率最高的元素為:5 
  • 4.從數(shù)組中計算出每個數(shù)的個數(shù)
var collection = [1,1,1,1,2,3,1,3,4,2,3,1,3,4,2];
function grouping_count(collection) {
  var h = {};
  var num = 0;
  for (var i = 0; i < collection.length; i++) {
    var a = collection[i];
    h[a] === undefined ? h[a] = 1 : (h[a]++);
  }

  return h;
}                        //{'1':6, '2':3, '3':4, '4':2}
  • 5.將二維數(shù)組變?yōu)橐痪S數(shù)組
var collection = [1, [2], [3, 4]];
function double_to_one(collection) {
  var arr1 = (collection + '').split(',');            //將數(shù)組轉(zhuǎn)字符串后再以逗號分隔轉(zhuǎn)為數(shù)組
  var arr2 = arr1.map(function (value, index, arr)  { //map() 方法返回一個新數(shù)組藻烤,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值。
    return Number(value);
  });
  return arr2;
}
  • 6.將數(shù)字變?yōu)樽址?/strong>
    圖片.png

    答案:
var number_map_to_word_over_26 = function(collection){
  var c=[]
  var r=collection.map(function(value,index,collection){
     if(value<=26) {
     c= String.fromCharCode(value+96);
     }
     else{
      c=String.fromCharCode(97).concat(String.fromCharCode(value%26+96));
     }
     return c;
 })
 return r;
};
  • 7.將數(shù)組的數(shù)字進(jìn)行排序操作
   //按照數(shù)值的大小對數(shù)字進(jìn)行排序爽雄,必須使用一個排序函數(shù):a代表數(shù)組的前一位蝠检,b代表數(shù)組的后一位。
var arr = [1,2,3,5,2,5,3,6,2,6,2,6,2,5,9,6,8,54,3,6,8];
arr.sort(function(a,b){return a-b});  //這樣是升序排列挚瘟。
                                      //如果希望降序排列叹谁,就寫成return b-a;
  • 8.求數(shù)組的中位數(shù)
    圖片.png

    答案
function compute_chain_median(collection) {
  //在這里寫入代碼
  var ary = collection.split('->').sort(function (a, b) {   //split()將chain以指定的"->”為分界乘盖,分割成一個數(shù)組焰檩,結(jié)果是一個數(shù)組
    return a - b;                                          //sort() 將數(shù)組進(jìn)行升序操作
  });

  var lowMiddle = Math.floor((ary.length - 1) / 2);   // Math.floor()向下取整
  var highMiddle = Math.ceil((ary.length - 1) / 2);   //Math.ceil  ()  向上取整
  return (Number(ary[lowMiddle]) + Number(ary[highMiddle])) / 2;
}
  • 9.編寫一個函數(shù),實(shí)現(xiàn)以下功能:計算出一個字符串共有多少個單詞組成订框。
    <script type="text/javascript">
        var r = 0;
        var n;
        function countWords(message) {
            n = message.split(" ")   //split() 方法用于把一個字符串分割成字符串?dāng)?shù)組析苫。
            r = n.length;            //n=Good,morning,,I,love,JavaScript
            return r;
        }
        countWords('Good morning, I love JavaScript.');
        document.write(r);
    </script>         //5
  • 10 .題目


    圖片.png

    答案

var r = [];
  for (var i = 0; i < collection.length;) {
    let count = 0;
    for (var j = 0; j < collection.length; j++) {
      if (collection[i] === collection[j]) {
        count++;
      }
    }
    r.push({
      key: collection[i],
      count: count
    })
    i += count;
  }
  return r;
}
  • 11.題目要求(如何遍歷對象,如何使用正則表達(dá)式)


    圖片.png
 let result = [];
  let H = {};
  for (let item of collection) {
    if (item.length === 1) {
      H[item] === undefined ? H[item] = 1 : H[item] += 1;
    } else {
      let grexNum = /\d{1,2}/;  //正則表達(dá)式  :獲取兩位數(shù)以內(nèi)的數(shù)字
      let grexWord = /^\w/;    //正則表達(dá)式:   獲取首位字母的字母
      let num = item.match(grexNum)   //match() 方法可在字符串內(nèi)檢索指定的值穿扳,或找到一個或多個正則表達(dá)式的匹配               
      let word = item.match(grexWord)
      H[word[0]] === undefined ? H[word[0]] = Number(num[0]) : H[word[0]] += Number(num[0]);
    }
  }
  let r = [];
  for (let i in H) {    //遍歷對象H 賦值給數(shù)組r
    r.push({
      name: i,
      summary: H[i]
    })
  }
  return r;
}
  • 11.遍歷對象數(shù)組
  var collection_a = [
    {key: "a", count: 3},
    {key: "e", count: 7},
    {key: "h", count: 11},
    {key: "t", count: 20},
    {key: "f", count: 9},
    {key: "c", count: 8},
    {key: "g", count: 7},
    {key: "b", count: 6},
    {key: "d", count: 5}
  ];
//選出A集合中元素的key屬性跟B對象中value屬性中的元素相同的元素,把他們的count藤违,滿3減1,輸出減過之后的新A集
 for (var i = 0; i < collection_a.length; i++) {
    for (var j = 0; j < object_b.value.length; j++) {
      if (collection_a[i].key === object_b.value[j]) {
        collection_a[i].count = collection_a[i].count - Math.floor(collection_a[i].count / 3);
      }
    }

  }
  return collection_a;
  • 12.for in 和 for of 遍歷的區(qū)別
et iterable = [3, 5, 7];

for (let i in iterable) {
  console.log(i); //  0, 1, 2  //for in 是獲得索引值

for (let i of iterable) {
  console.log(i); // 3, 5, 7   //for of 是獲得元素值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纵揍,一起剝皮案震驚了整個濱河市顿乒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泽谨,老刑警劉巖璧榄,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件特漩,死亡現(xiàn)場離奇詭異,居然都是意外死亡骨杂,警方通過查閱死者的電腦和手機(jī)涂身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搓蚪,“玉大人蛤售,你說我怎么就攤上這事《侍叮” “怎么了悴能?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雳灾。 經(jīng)常有香客問我漠酿,道長,這世上最難降的妖魔是什么谎亩? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任炒嘲,我火速辦了婚禮,結(jié)果婚禮上匈庭,老公的妹妹穿的比我還像新娘夫凸。我一直安慰自己,他們只是感情好阱持,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布夭拌。 她就那樣靜靜地躺著,像睡著了一般紊选。 火紅的嫁衣襯著肌膚如雪啼止。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天兵罢,我揣著相機(jī)與錄音献烦,去河邊找鬼。 笑死卖词,一個胖子當(dāng)著我的面吹牛巩那,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播此蜈,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼即横,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了裆赵?” 一聲冷哼從身側(cè)響起东囚,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎战授,沒想到半個月后页藻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桨嫁,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年份帐,在試婚紗的時候發(fā)現(xiàn)自己被綠了璃吧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡废境,死狀恐怖畜挨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情噩凹,我是刑警寧澤巴元,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站栓始,受9級特大地震影響务冕,放射性物質(zhì)發(fā)生泄漏血当。R本人自食惡果不足惜幻赚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望臊旭。 院中可真熱鬧落恼,春花似錦、人聲如沸离熏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滋戳。三九已至钻蔑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奸鸯,已是汗流浹背咪笑。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娄涩,地道東北人窗怒。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蓄拣,于是被迫代替她去往敵國和親扬虚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1.使用jQuery寫出點(diǎn)擊當(dāng)前元素時給其添加class類,同級元素移除類 2.寫一個方法實(shí)現(xiàn)每兩個字符之間插入一...
    神奇的少年閱讀 325評論 0 1
  • 近來讀書球恤,發(fā)現(xiàn)把東方傳統(tǒng)經(jīng)典和西方相關(guān)暢銷書結(jié)合起來讀辜昵,效果很好。東西方思維模式不一樣咽斧,老祖宗的東西很有智慧堪置,但大...
    天之心語閱讀 118評論 0 0
  • 真真:春天好贷洲! 江南的春天來臨的時候,我收到了您的信晋柱。望著春風(fēng)中嘩啦啦亂舞的新綠的柳枝优构,我想,我會把著春天的枝條高...
    YF你怎么看閱讀 294評論 0 0
  • 時間:2017年11月4日 人物:菩薩~海燕雁竞、樂凱~咖啡钦椭、孟~游牧 深秋已至,早晚的溫差較大碑诉,正午陽光明媚彪腔,可到了...
    咖啡_839d閱讀 587評論 2 2