第一個:

凌云ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
for(var i = 100,i=200,++i){
if(i%21 === 0){
alert(i);
break;
}
}
第二題
首先這種數(shù)不是叫完成,而是叫完數(shù),英文perfectnumber(完美數(shù))
//用來判斷數(shù)字是不是完數(shù)的函數(shù):
function is_perfect_number(num){
var sum = 0;
for(var i=1;inum;++i){
if (num%i == 0) {
sum += i;
}
}
return sum == num;
}
//初始化一個空數(shù)組,用來保存結(jié)果
var result = [];
for(var i=1;i=500;++i){
//如果是完數(shù)就放進數(shù)組里
if (is_perfect_number(i)) {
result.push(i);
}
}
//輸出結(jié)果
alert(result);
上面的方法是用的最笨的方法求的,你可以去搜索一下完數(shù)的性質(zhì),利用性質(zhì)可以寫出更簡單的算法來求完數(shù)
26個字母轉(zhuǎn)為ASCII碼:
var?c?=?'A';
console.log(c.charCodeAt(0));
26個字母轉(zhuǎn)換為1~26對應(yīng)的數(shù)字:
var?c?=?'A';??//字母
console.log(c.toLocaleLowerCase().charCodeAt(0)?-?96);
此篇屬于前端算法入門系列的第一篇,主要介紹常用的 數(shù)組方法 、 字符串方法 、 遍歷方法 、 高階函數(shù) 、 正則表達式 以及相關(guān) 數(shù)學(xué)知識 。
在尾部追加,類似于壓棧,原數(shù)組會變。
在尾部彈出,類似于出棧,原數(shù)組會變。數(shù)組的 push pop 可以模擬常見數(shù)據(jù)結(jié)構(gòu)之一:棧。
在頭部壓入數(shù)據(jù),類似于入隊,原數(shù)組會變。
在頭部彈出數(shù)據(jù),原數(shù)組會變。數(shù)組的 push (入隊) shift (出隊) 可以模擬常見數(shù)據(jù)結(jié)構(gòu)之一:隊列。
concat 會在當前數(shù)組尾部拼接傳入的數(shù)組,然后返回一個新數(shù)組,原數(shù)組不變。
在數(shù)組中尋找該值,找到則返回其下標,找不到則返回 -1 。
在數(shù)組中尋找該值,找到則返回 true ,找不到則返回 false 。
將數(shù)組轉(zhuǎn)化成字符串,并返回該字符串,不傳值則默認逗號隔開,原數(shù)組不變。
翻轉(zhuǎn)原數(shù)組,并返回已完成翻轉(zhuǎn)的數(shù)組,原數(shù)組改變。
從 start 開始截取到 end ,但是不包括 end
可參考 MDN:Sort [5]
將數(shù)組轉(zhuǎn)化成字符串,并返回該字符串,逗號隔開,原數(shù)組不變。
返回指定索引位置處的字符。類似于數(shù)組用中括號獲取相應(yīng)下標位置的數(shù)據(jù)。
類似數(shù)組的concat(),用來返回一個合并拼接兩個或兩個以上字符串。原字符串不變。
indexOf ,返回一個字符在字符串中首次出現(xiàn)的位置, lastIndexOf 返回一個字符在字符串中最后一次出現(xiàn)的位置。
提取字符串的片斷,并把提取的字符串作為新的字符串返回出來。原字符串不變。
使用指定的分隔符將一個字符串拆分為多個子字符串數(shù)組并返回,原字符串不變。
match() 方法可在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達式的匹配,并返回一個包含該搜索結(jié)果的數(shù)組。
注意事項 :如果 match 方法沒有找到匹配,將返回 null 。如果找到匹配,則 match 方法會把匹配到以數(shù)組形式返回,如果正則規(guī)則未設(shè)置全局修飾符 g ,則 match 方法返回的數(shù)組有兩個特性: input 和 index 。 input 屬性包含整個被搜索的字符串。 index 屬性包含了在整個被搜索字符串中匹配的子字符串的位置。
replace 接收兩個參數(shù),參數(shù)一是需要替換掉的字符或者一個正則的匹配規(guī)則,參數(shù)二,需要替換進去的字符,仔實際的原理當中,參數(shù)二,你可以換成一個回調(diào)函數(shù)。
在目標字符串中搜索與正則規(guī)則相匹配的字符,搜索到,則返回第一個匹配項在目標字符串當中的位置,沒有搜索到則返回一個 -1 。
toLowerCase 把字母轉(zhuǎn)換成小寫, toUpperCase() 則是把字母轉(zhuǎn)換成大寫。
includes 、 startsWith 、 endsWith , es6 的新增方法, includes 用來檢測目標字符串對象是否包含某個字符,返回一個布爾值, startsWith 用來檢測當前字符是否是目標字符串的起始部分,相對的 endwith 是用來檢測是否是目標字符串的結(jié)尾部分。
返回一個新的字符串對象,新字符串等于重復(fù)了指定次數(shù)的原始字符串。接收一個參數(shù),就是指定重復(fù)的次數(shù)。原字符串不變。
最常用的 for 循環(huán),經(jīng)常用的數(shù)組遍歷,也可以遍歷字符串。
while 、 do while 主要的功能是,當滿足 while 后邊所跟的條件時,來執(zhí)行相關(guān)業(yè)務(wù)。這兩個的區(qū)別是, while 會先判斷是否滿足條件,然后再去執(zhí)行花括號里面的任務(wù),而 do while 則是先執(zhí)行一次花括號中的任務(wù),再去執(zhí)行 while 條件,判斷下次還是否再去執(zhí)行 do 里面的操作。也就是說 do while 至少會執(zhí)行一次操作 .
拷貝一份遍歷原數(shù)組。
for…of 是 ES6 新增的方法,但是 for…of 不能去遍歷普通的對象,** for…of 的好處是可以使用 break 跳出循環(huán)。**
面試官:說一下 for...in 和 for...of 區(qū)別?
返回一個布爾值 。當我們需要判定數(shù)組中的元素是否滿足某些條件時,可以使用 every / some 。這兩個的區(qū)別是, every 會去判斷判斷數(shù)組中的每一項,而 some 則是當某一項滿足條件時返回。
reduce 從左到右將數(shù)組元素做“疊加”處理,返回一個值。 reduceRight 從右到左。
Object.keys 方法的參數(shù)是一個對象,返回一個數(shù)組。該數(shù)組的成員都是該對象自身的(而不是繼承的)所有屬性名,且只返回可枚舉的屬性。
Object.getOwnPropertyNames 方法與 Object.keys 類似,也是接受一個對象作為參數(shù),返回一個數(shù)組,包含了該對象自身的所有屬性名。但它能返回不可枚舉的屬性。
這里羅列一些我在刷算法題中遇到的正則表達式,如果有時間可認真學(xué)一下 正則表達式不要背 [7] 。
持續(xù)更新,敬請期待……
若一個正整數(shù)無法被除了 1 和它自身之外的任何自然數(shù)整除,則稱該數(shù)為質(zhì)數(shù)(或素數(shù)),否則稱該正整數(shù)為合數(shù)。
for(index in score)
--
score 是一個數(shù)組,for(index in score)表示以index(index是一個變量)為單位,循環(huán)的每一位(因為score是數(shù)組),假設(shè)score的值為1,2,3,4,5,6,7 那么for(index in score)就會循環(huán)7次,score的值就會變化7次,分別是前面的1 ,然后2,然后3……
if(index%2==1)
----
%是js的一個運算符,表示余數(shù),例如 12%5,運算結(jié)果就是 12%5=2,算法是:先用12減去一個5,如果結(jié)果大于5的話,就繼續(xù)減,直到值小于5并大于零, 12減去一個5得7,7再減一個5得2,那么這個2就是12%5的值..
== 兩個等號是js的等值運算符,表示等于的意思,相當與我們數(shù)學(xué)里的 = 號.而我們我們數(shù)學(xué)里的 = 號,在js里是賦值運算符 var a;a=3; 意思就是把這個變量 a 賦值為3
如果對js感興趣 就去買本書從基礎(chǔ)學(xué)起吧
一:十萬一下的 呵呵算法一:
測試 10 萬以下的質(zhì)數(shù): 程序代碼
// 獲得 0 到 limit 之間的素數(shù)
// author: dron
function getPrimeNumbers(limit){
var result = [2];
var is;
if(limit 2)
return [];
for(var i = 3, s; i = limit; i += 2){
is = true;
s = Math.sqrt(i);
for(var j = 0, r, l = result.length; j = l; j ++){
r = result[j];
if(r s)
break;
if(i % r)
continue;
is = false;
break;
}
is result.push(i);
}
return result;
}算法二: 程序代碼
var stopwatch = new Date(); // 計時器, 初始化.
var MaxNum = 100000; // 查找 2到MaxNum 這范圍內(nèi)的素數(shù) ( MaxNum 要= 2 ).
var i, j; // 計數(shù)器.
var count = 1; // 初始化素數(shù)的個數(shù), 因為我們從2開始計, 所以初始化為 1.
var PrimeTemp = []; // 在這個數(shù)組做記號, 做了記號的, 全不是素數(shù).
var PrimeArys = [2]; // 貯存素數(shù)的 數(shù)組. 因為 MaxNum = 2, 所以第一個數(shù)組元素的值為 2 .
var oNum = Math.ceil( Math.sqrt( MaxNum ) ); // 為什么用 開方? 看到下面2個 for 沒.
// 把不是素數(shù)的做 "記號".
for(i=3; ioNum; i+=2) // +=2 ??? 我們整個程序都不用雙數(shù), 全用單數(shù), 這樣就快2倍了.
if( PrimeTemp[i]==null ) // 初始化 PrimeTemp 的數(shù)組, 數(shù)組里面當然什么都沒有.
for(j=i; i*j=MaxNum; j+=2) // i 的 j 倍一定不是素數(shù), 但我們要 i*j 來看看是否超過了 MaxNum
PrimeTemp[ i*j ] = 0; // 初始化 PrimeTemp 里的元素, 現(xiàn)在來幫它們做一個 "記號". 因為這個元素"不是"素數(shù).
// 輸出素數(shù)了.
for(i=3; i=MaxNum; i+=2) // +=2 ,不要忘記, 我們不用雙數(shù)的.
if( PrimeTemp[i]==null ) // 如果是 true , 這就表明 這個沒有被做 "記號" , 所以它是 素數(shù).
PrimeArys[ count++ ] = i; // 是 素數(shù) 的話, 就存入 PrimeArys 數(shù)組.
document.write( PrimeArys.join(" ") , "brbr從2到"+MaxNum+"共有素數(shù) "+count+" 個。"); // 用 join()提高輸出效率
var t=new Date()-stopwatch;
alert("本次運行了 "+t+" 毫秒。"); //看看 程序運行了多久.二:簡單點的script
function look(num){
time=new Date();
a=new Array(2,3,5,7,11,13,17,19,23,29,31,37)
for(x=41;xnum;x+=2)
{
if(aa3(x))a[a.length]=x
}
time=new Date()-time;
document.write(a.toString().replace(/\,/g,"br"))
alert("共"+a.length+"個,用時"+time+"毫秒")
}function aa3(n)
{
if(n%3==0)return false
if(n%5==0)return false
var b=a.length
for(var y=3;yb;y++){if(n%a[y]==0)return false}
return true
}/script
input id=aa value=10000input type=button value=計算 onclick=look(aa.value)
2.題
=================================
script language="javascript"
function test2()
{
var n=document.getElementById("num").value;
if(/^[1-9]\d*$/.test(n)==false){return false;}
sum=0
n++
for(i=1;in;i++){
sum+=i
}
if(sum==0){return false;}
window.location=sum+".htm"
}
/script
計算1到n之和:
input id="num" type="text"
input type="button" onclick="test2()" value="計算"
=================================
3.題
=================================
script language="javascript"
function test1()
{
var n= window.prompt("請輸入數(shù)字:計算1-n之和的平方");
if(/^[1-9]\d*$/.test(n)==false){return false;}
sum=0
n++
for(i=1;in;i++){
sum+=i
}
sum=sum*sum
alert("計算結(jié)果是:"+sum)
}
function test2()
{
var n=document.getElementById("num").value;
if(/^[1-9]\d*$/.test(n)==false){return false;}
sum=0
n++
for(i=1;in;i++){
sum+=i
}
if(sum==0){return false;}
window.location=sum+".htm"
}
window.onload=test1
window.onunload=function(){alert("歡迎下次使用")}
/script
計算1到n之和:
input id="num" type="text"
input type="button" onclick="test2()" value="計算"
當前標題:算法javascript題庫,javascript編程題
文章鏈接:http://chinadenli.net/article27/dsepscj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、電子商務(wù)、網(wǎng)站收錄、企業(yè)建站、外貿(mào)建站、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)