摘要:法一法二使用給定的參數對句子執行一次查找和替換,然后返回新句子。法一法二把指定的字符串翻譯成。在每一個數組中將給定的字母作為第一個堿基返回。法一后項減去前項法二檢查一個值是否是基本布爾類型,并返回或。基本布爾類型即和。
Diff Two Arrays
比較兩個數組,然后返回一個新數組,該數組的元素為兩個給定數組中所有獨有的數組元素。換言之,返回兩個數組的差異。
function diff(arr1, arr2) { var a1=arr1.filter(function(val){ return arr2.indexOf(val)< 0; }); var a2=arr2.filter(function(val){ return arr1.indexOf(val)< 0; }); return a1.concat(a2); } diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);Roman Numeral Converter
將給定的數字轉換成羅馬數字。
所有返回的 羅馬數字 都應該是大寫形式。
可參考Here
function convert(num) { var nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1]; var romans =["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"]; var str = ""; nums.forEach(function(item,index,array){ while(num >= item){ str += romans[index]; num -= item; } }); return str.toUpperCase(); } convert(36);Where art thou
寫一個 function,它遍歷一個對象數組(第一個參數)并返回一個包含相匹配的屬性-值對(第二個參數)的所有對象的數組。如果返回的數組中包含 source 對象的屬性-值對,那么此對象的每一個屬性-值對都必須存在于 collection 的對象中。
例如,如果第一個參數是 [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }],第二個參數是 { last: "Capulet" },那么你必須從數組(第一個參數)返回其中的第三個對象,因為它包含了作為第二個參數傳遞的屬性-值對。
//法一 function where(collection, source) { var keys = Object.keys(source); return collection.filter(function(obj){ return keys.every(function(item){ return obj.hasOwnProperty(item) && obj[item] === source[item]; }); }); } //法二 function where(collection, source) { var keys = Object.keys(source); return collection.filter(function(obj){ return keys.every(function(item){ return obj.hasOwnProperty(item) && obj[item] === source[item]; }); }); } where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });Search and Replace
使用給定的參數對句子執行一次查找和替換,然后返回新句子。第一個參數是將要對其執行查找和替換的句子。第二個參數是將被替換掉的單詞(替換前的單詞)。第三個參數用于替換第二個參數(替換后的單詞)。
注意:替換時保持原單詞的大小寫。例如,如果你想用單詞 "dog" 替換單詞 "Book" ,你應該替換成 "Dog"。
//法一 function myReplace(str, before, after) { if(before[0] === before[0].toUpperCase()){ after = after[0].toUpperCase() + after.slice(1); } str = str.replace(before,after); return str; } //法二 function myReplace(str, before, after) { var re = /^[A-Z]/; if(re.test(before.charAt(0))){ after = after.charAt(0).toUpperCase() + after.slice(1); } str = str.replace(before,after); return str; } myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");Pig Latin
把指定的字符串翻譯成 pig latin。
Pig Latin 把一個英文單詞的第一個輔音或輔音叢(consonant cluster)移到詞尾,然后加上后綴 "ay"。
如果單詞以元音開始,你只需要在詞尾添加 "way" 就可以了。
function translate(str) { var myStr = ""; var regex = /[aeiou]/gi; if(str[0].match(regex)){ myStr = str + "way"; }else{ var index = str.indexOf(str.match(regex)[0]); myStr = str.substr(index) + str.substring(0,index) + "ay"; } return myStr; } translate("consonant");//onsonantcayDNA Pairing
DNA 鏈缺少配對的堿基。依據每一個堿基,為其找到配對的堿基,然后將結果作為第二個數組返回。
Base pairs(堿基對) 是一對 AT 和 CG,為給定的字母匹配缺失的堿基。
在每一個數組中將給定的字母作為第一個堿基返回。
例如,對于輸入的 GCG,相應地返回 [["G", "C"], ["C","G"],["G", "C"]]
字母和與之配對的字母在一個數組內,然后所有數組再被組織起來封裝進一個數組。
function pair(str) { var arr = str.split(""); var pair = ""; return arr.map(function(item){ switch(item){ case "C": pair = "G"; break; case "G": pair = "C"; break; case "A": pair = "T"; break; case "T": pair = "A"; break; } return [item,pair]; }); } pair("GCG");Missing letters
從傳遞進來的字母序列中找到缺失的字母并返回它。
如果所有字母都在序列中,返回 undefined。
法一: var arr = str.split(""); for(var i = 0;i < arr.length;i++){ var minus = arr[i+1].charCodeAt() - arr[i].charCodeAt();/后項減去前項/ if( minus > 1){ return String.fromCharCode(arr[i].charCodeAt()+1); } } 法二: function fearNotLetter(str) { var compare = str.charCodeAt(0),missing; str.split("").map(function(item,index){ if(str.charCodeAt(index) === compare){ ++ compare; }else{ missing = String.fromCharCode(compare); } }); return missing; } fearNotLetter("abce");Boo who
檢查一個值是否是基本布爾類型,并返回 true 或 false。
基本布爾類型即 true 和 false。
function boo(bool) { return typeof bool === "boolean"; } boo(true);Sorted Union
寫一個 function,傳入兩個或兩個以上的數組,返回一個以給定的原始數組排序的不包含重復值的新數組。
例如:unite([1, 3, 2], [5, 2, 1, 4], [2, 1]) 應該返回 [1, 3, 2, 5, 4]。
function unite(arr1, arr2, arr3) { var args = Array.from(arguments); var arr = args.reduce(function(prev,cur){ return prev.concat(cur); }); return arr.filter(function(item,index,arr){ return arr.indexOf(item) === index; }); } unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);Convert HTML Entities
將字符串中的字符 &、<、>、" (雙引號), 以及 " (單引號)轉換為它們對應的 HTML 實體。
法一 function convert(str) { str = str.replace(/&/g,"&").replace(//g,">") .replace(/"/g,""").replace(/"/g,"'"); return str; } convert("Dolce & Gabbana"); 法二: function convert(str) { var htmlEntities={ "&":"&", "<":"<", ">":">", """:""", """:"'", }; return str.split("").map(function(entity){ return htmlEntities[entity] || entity; }).join(""); } convert("Dolce & Gabbana");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86705.html
摘要:比如,就是獲取第一個字符。后面的暫時不會執行直到遇見傳入的字符串為,因為有了返回值,就不會再去調用了。 原文鏈接:http://singsing.io/blog/2017/... 翻轉字符串 (Reverse a String) 題目鏈接 中文鏈接 英文鏈接 級別:初級 (Basic Algorithm Scripting) 問題解釋 這個 function 接收一個字符串參數,...
摘要:總結下基礎算法題先把字符串轉化成數組,再借助數組的方法翻轉數組順序,最后把數組轉化成字符串。檢查一個字符串是否以指定的字符串結尾。刪除數組中的所有假值。加密算法的核心是前個字母值加,后個字母值減從字母表重新回滾。 總結下FreeCodeCamp基礎算法題: Reverse a String 先把字符串轉化成數組,再借助數組的reverse方法翻轉數組順序,最后把數組轉化成字符串。 fu...
摘要:相關頻道最后的坦白最后我得承認這一次我又標題黨了無非是想吸引更多前端初學者進來,希望大家都能少走一些彎路,也希望那些從零開始自學前端的同學更有勇氣去面對自己的選擇。 我是怎么走上前端開發這條路? 首先,我是個文科生,大學里只學過vb,覺得計算機編程這東西太玄乎,不是我玩得轉的。 后來機緣巧合去做了一家互聯網創業公司的HR,閱了上千份程序員的簡歷,面了上百個不同水平不同領域的程序員。跟程...
摘要:依據每一個堿基,為其找到配對的堿基,然后將結果作為第二個數組返回。堿基對是一對和,為給定的字母匹配缺失的堿基。輸入檢查算法挑戰檢查一個值是否是基本布爾類型,并返回或。基本布爾類型即和。二進制字符串是以空格分隔的。 showImg(https://segmentfault.com/img/remote/1460000010866723); 前言 W3Cschool上有個編程挑戰,里面的題...
摘要:還是老規矩,從易到難吧傳統的定時器,異步編程等。分配對象時,先是在空間中進行分配。內存泄漏內存泄漏是指程序中己動態分配的堆內存由于某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 網上參差不棄的面試題,本文由淺入深,讓你在...
閱讀 1371·2021-09-30 09:55
閱讀 1897·2021-08-27 13:10
閱讀 2244·2019-08-29 17:22
閱讀 1298·2019-08-29 16:30
閱讀 3464·2019-08-26 18:37
閱讀 2348·2019-08-26 11:47
閱讀 1162·2019-08-23 14:44
閱讀 1740·2019-08-23 13:46