js數(shù)組練習

1.用數(shù)組實現(xiàn)輸入10個成績,求總分晨川,最高分,最低分

????????var?arr?=?new?Array(60,?70,?80,?90,?30,?88,?77,?35,?23,?100);

????????var?sum?=?0,max=0;min=0;

????????for?(var?i?=?0;?i?<?10;?i++)?{

????????????sum?+=?arr[i];

????????????arr.sort(function(a,b){

????????????????return?a-b

????????????})

????????????max=arr[9]

????????????min=arr[0]

????????}

????????console.log(sum,max,min)

????????var?arr?=?[86,?45,?72,?39,?44,?77,?98,?87,?67,?59]

????????var?max?=?0;

????????var?sum?=?0

????????var?min?=?100

????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????sum?=?sum?+?arr[i]//求和

????????????if?(arr[i]?>?max)?{

????????????????max?=?arr[i]

????????????}

????????????if?(arr[i]?<?min)?{

????????????????min?=?arr[i]

????????????}

????????}

????????console.log(sum,?max,?min);

????????2.用數(shù)組實現(xiàn)?序列:1察迟,2立砸,3掖疮,5,8颗祝,13...浊闪。找出第20個數(shù)是多少???得出前20個數(shù)之和是多少?

????????var?arr?=?[],?sum?=?0,?num?=?0

????????for?(var?i?=?0;?i?<?20;?i++)?{

????????????if?(i?<?2)?{

????????????????num?=?i?+?1

????????????}?else?{

????????????????num?=?arr[i?-?1]?+?arr[i?-?2]

????????????}

????????????arr.push(num)

????????????sum?+=?num

????????}

????????console.log(sum,?arr);

????????3.用Date實現(xiàn)?輸入2個日期?(年月日)螺戳,計算兩個日期相差多少天搁宾?

????????function?inp()?{

????????????var?date1?=?prompt('請按照規(guī)定格式輸入,例如2020,10,20')

????????????var?date2?=?prompt('請按照規(guī)定格式輸入,例如2020,10,20')

????????????var?result?=?sub(date1,?date2)

????????????console.log(result);

????????}

????????function?sub(date1,?date2)?{

????????????date1?=?new?Date(date1)

????????????date2?=?new?Date(date2)

????????????return?Math.abs(date1?-?date2)?/?1000?/?60?/?60?/?24

????????}

????????4.輸入日期?(年月日)和連接符(可以是?/?或者?-?)返回?2019?/?10?/?11??或者?2019?-?10?-?11

????????function?format(s){

????????????var?year=prompt('請按照規(guī)定格式輸入')

????????????var?month=prompt('請按照規(guī)定格式輸入')

????????????var?date=prompt('請按照規(guī)定格式輸入')

????????????return?[year,month,date].join(s)

????????}

????????console.log(format('-'));

????????1.猜數(shù)字游戲,有一個0?-?100隨機數(shù)?玩家有5次輸入的機會猜温峭,

????????每次猜一次猛铅,都要將結果告訴玩家是小了字支,還是大了

????????如果在5次機會內猜中凤藏,輸出“聰明”,程序結束

????????如果5次機會用完?程序直接結束堕伪。

????????var?num?=?parseInt(Math.random()*101);

????????console.log(num)

????????for(var?i=0;i<5;i++){

????????????var?arr=prompt('請輸入一個數(shù):');

????????????if(arr==num){

????????????????console.log('你真是個小機靈鬼');

????????????????break;

????????????}else?if(arr>num){

????????????????alert('猜大了')

????????????}else{

????????????????alert('猜小了')

????????????}

????????}

????????2.有一個4個長度的數(shù)組揖庄,每個位置裝有0?-?9之間的隨機數(shù)字,有10次輸入的機會來猜每個位置的上的數(shù)是什么欠雌,

????????每次猜完4個數(shù)字以后都要給出提示蹄梢,正確幾個?錯誤幾個,

????????只有位置和數(shù)字完全正確才算正確富俄,其他情況全視為錯誤禁炒。

????????var?arr?=?new?Array(4)

????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????arr[i]?=?parseInt(Math.random()?*?10)

????????}

????????console.log(arr);

????????for?(var?i?=?0;?i?<?10;?i++)?{

????????????var?ans?=?new?Array(4)

????????????var?yesNum?=?0,?noNum?=?0

????????????for?(var?j?=?0;?j?<?arr.length;?j++)?{

????????????????ans[j]?=?prompt('第'?+?(i?+?1)?+?'次的第'?+?(j?+?1)?+?'個')

????????????????if?(ans[j]?==?arr[j])?{

????????????????????yesNum++

????????????????}?else?{

????????????????????noNum++

????????????????}

????????????}

????????????console.log(`正確${yesNum}個,錯誤${noNum}個`);

????????????if?(yesNum?==?4)?{

????????????????console.log('聰明');

????????????????break;

????????????}

????????}

????????3.?根據雙色球搖獎規(guī)則,產生6個紅球1個藍球霍比;紅球范圍1?-?33幕袱,?藍球范圍1?-?16.?紅球不能有重復的產生。

????????思路:每次產生一個隨機球悠瞬,存入數(shù)組中们豌,下一次產生的隨機球,要和數(shù)組中的進行比較浅妆,如果有相等的望迎,

????????則重新產生一個號(循環(huán)變量要減1),反之繼續(xù)存入數(shù)組凌外;直到產生6個球辩尊;藍球單獨產生;最后輸出所有球康辑。

????????var?red?=?[parseInt(Math.random()?*?33?+?1)]//先準備一個//20

????????//?第二個?要跟?第一個?來比較

????????for?(var?i?=?0;?red.length?<?6;?i++)?{//1?2?3

????????????console.log(`第${i?+?1}次`);

????????????var?num?=?parseInt(Math.random()?*?33?+?1)//21?20?20

????????????if?(red.indexOf(num)?==?-1)?{

????????????????red.push(num)//[20,21]

????????????}

????????}

????????console.log(red);

????????var?blue?=?parseInt(Math.random()?*?16?+?1)

????????console.log(blue);

????????1对省、數(shù)組去重[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5]??返回出來的結果[1,?2,?3,?4,?5,?6,?9]

????????var?arr?=?[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5];

????????function?show(arr)?{

????????????var?str?=?[]

????????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????????if?(str.indexOf(arr[i])?==?-1)?{

????????????????????str.push(arr[i])

????????????????}

????????????}

????????????return?str

????????}

????????console.log(show(arr));


????????var?arr?=?[1,?2,?3,?1,?2]

????????var?arr2?=?arr.sort()//[1,1,2,2,3]

????????var?res?=?[arr2[0]]

????????for?(var?i?=?1;?i?<?arr2.length;?i++)?{

????????????if?(arr2[i]?!=?res[res.length?-?1])?{

????????????????res.push(arr2[i])

????????????}

????????}

????????console.log(res);

????????2蝗拿、數(shù)組排序[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5]??返回出來的結果[1,?1,?2,?2,?3,?3,?4,?5,?5,?6,?9]

????????var?arr=[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5];

????????for(var?i=0;i<arr.length;i++){

????????????arr.sort()??

????????}

????????console.log(arr);

????????var?arr?=?[3,?2,?1,?4,?2,?1]

????????var?temp?=?0,?count?=?0

????????for?(var?i?=?0;?i?<?arr.length?-?1;?i++)?{

????????????for?(var?j?=?0;?j?<?arr.length?-?1?-?i;?j++)?{

????????????????count++

????????????????console.log(arr,?count);

????????????????if?(arr[j]?>?arr[j?+?1])?{

????????????????????temp?=?arr[j]

????????????????????arr[j]?=?arr[j?+?1]

????????????????????arr[j?+?1]?=?temp

????????????????}

????????????}

????????}

????????console.log(arr);

????????3、排序后去重

????????var?arr?=?[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5];

????????arr.sort(function(a,b){

????????????return?a-b

????????})

????????var?str?=?[]

????????for?(var?j?=?0;?j?<?arr.length;?j++)?{

????????????if?(str.indexOf(arr[j])?==?-1)?{

????????????????str.push(arr[j])

????????????}

????????}

????????console.log(str);

????????給定一個排序數(shù)組蒿涎,你需要在?原地?刪除重復出現(xiàn)的元素哀托,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度劳秋。

????????不要使用額外的數(shù)組空間仓手,你必須在?原地?修改輸入數(shù)組?并在使用?O(1)?額外空間的條件下完成。

????????var?arr?=?[1,?2,?3,?4,?2,?1,?3,?5,?6,?9,?5]

????????var?len?=?arr.length

????????for?(var?i?=?0;?i?<?len?-?1;?i++)?{

????????????var?j=i+1

????????????for?(;?j?<?len?-?1;?j++)?{

????????????????if?(arr[i]?==?arr[j])?{

????????????????????arr.splice(j,1)

????????????????}

????????????}

????????}

????????console.log(arr);

????????function?removeDuplicates(nums)?{

????????????for?(var?i?=?0;?i?<?nums.length;?i++)?{

????????????????if?(nums[i]?==?nums[i?+?1])?{

????????????????????nums.splice(i,?1)

????????????????????i--

????????????????}

????????????}

????????????return?nums

????????}

????????console.log(removeDuplicates([0,?0,?0,?1,?1,?2,?2,?3,?4]));

????????5玻淑、以數(shù)組的第二個字符排序

????????var?arr?=?['hello',?'gay',?'blob',?'fyi',?'circle',?'rooom',?'zzz']

????????function?compareSort()?{

????????????var?newArr?=?[]

????????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????????//{id:e,origin:hello}

????????????????//{id:a,origin:gay}

????????????????newArr.push({?id:?arr[i][1],?origin:?arr[i]?})

????????????}

????????????console.log(newArr);

????????????newArr.sort(function?(a,?b)?{

????????????????var?x?=?a.id//e

????????????????var?y?=?b.id//a

????????????????if?(x?>?y)?{

????????????????????return?1

????????????????}

????????????????if?(x?<?y)?{

????????????????????return?-1

????????????????}

????????????????return?0

????????????})

????????????console.log(newArr);

????????????var?result?=?[]

????????????for?(var?j?=?0;?j?<?newArr.length;?j++)?{

????????????????result.push(newArr[j].origin)

????????????}

????????????console.log(result);

????????}

????????compareSort()

????????1嗽冒、給定A、B兩個數(shù)組补履,同時存在于A添坊、B兩個數(shù)組中的項稱為“交集”;只在A數(shù)組中箫锤,

????????且不在B數(shù)組中的項稱為“差集”編寫函數(shù)intersection(arr1,?arr2)返回兩個數(shù)組的交集數(shù)組贬蛙;

????????var?arr?=?[1,?2,?3,?4],?arr2?=?[3,?4,?5]?//3,4

????????function?intersection(arr1,?arr2)?{

????????????var?temp?=?[]

????????????for?(var?i?=?0;?i?<?arr2.length;?i++)?{

????????????????if?(arr1.indexOf(arr2[i])?!=?-1)?{

????????????????????temp.push(arr2[i])

????????????????}

????????????}

????????????return?temp

????????}

????????console.log(intersection(arr,?arr2));

????????var?arr?=?[1,?2,?3,?4],?arr2?=?[3,?4,?5]

????????var?intersection?=?arr.filter(function?(item)?{

????????????return?arr2.indexOf(item)?>?-1

????????})

????????console.log(intersection);

????????2、編寫函數(shù)difference(arr1谚攒,arr2)返回兩個數(shù)組的差集數(shù)組

????????var?arr?=?[1,?2,?3,?4],?arr2?=?[3,?4,?5]//1,2,5

????????var?differenceA?=?arr.filter(function?(item)?{

????????????return?arr2.indexOf(item)?==?-1

????????})

????????var?differenceB?=?arr2.filter(function?(item)?{

????????????return?arr.indexOf(item)?==?-1

????????})

????????console.log(differenceA.concat(differenceB));

????????3阳准、編寫一個二維數(shù)組,存儲九九乘法表馏臭。

????????var?arr=[];

????????for(var?i=1;i<10;i++){

????????????var?str=[];

????????????for(var?j=1;j<=i;j++){

????????????????str.push(i+'*'+j+'='+i*j);

????????????}

????????????arr.push(str)

????????}

????????console.log(arr);

????????4野蝇、編寫函數(shù)flattenArray(arr)?,可以將數(shù)組扁平化括儒。數(shù)組拉平

????????例如[1,?[2,?3],?[4,?5],?[6,?[7,?8],?9,?[[[10,?[[11,?12],?13],?14],?15,?16],?17],?18]]

????????扁平化的結果為:[1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18]

????????var?arr?=?[1,?[2,?3],?[4,?5],?[6,?[7,?8],?9,?[[[10,?[[11,?12],?13],?14],?15,?16],?17],?18]];

????????var?str?=?arr.toString();

????????var?arr2?=?str.split(',');

????????for?(var?i?=?0;?i?<?arr2.length;?i++)?{

????????????arr2[i]?=?parseInt(arr2[i]);

????????}

????????console.log(str);

????????console.log(arr2);

????????var?arr?=?[1,?2,?[3,?4,?[5]]]

????????????var?temp?=?[]

????????????function?flat(list)?{

????????????????for?(var?i?=?0;?i?<?list.length;?i++)?{

????????????????????if?(Array.isArray(list[i]))?{

????????????????????????flat(list[i])

????????????????????}?else?{

????????????????????????temp.push(list[i])

????????????????????}

????????????????}

????????????????return?temp

????????????}

????????????console.log(flat(arr));

????????5绕沈、編寫函數(shù)isAnagram(str1,?str2)用來檢查兩個字符串是否互為變位詞。變位詞指不計順序的情況下兩個單詞包含完全相同的字母帮寻,

????????不多不少乍狐。比如“silent”和“l(fā)isten”互為變位詞。

????????function?isAnagram(str1,?str2)?{//abc??abc

????????????var?arr1?=?str1.split('')

????????????var?arr2?=?str2.split('')

????????????if?(arr1.length?!=?arr2.length)?{

????????????????return

????????????}

????????????for?(var?i?=?0;?i?<?arr2.length;?i++)?{

????????????????if?(arr1.indexOf(arr2[i])?==?-1)?{

????????????????????return?false

????????????????}?else?{

????????????????????arr1.splice(arr1.indexOf(arr2[i]),?1)

????????????????}

????????????}

????????????return?arr1.length?==?0

????????}

????????console.log(isAnagram('abc',?'bcb'));

????????6规婆、編寫函數(shù)macrepeat(arr)返回數(shù)組中連續(xù)出現(xiàn)最多次的項澜躺。

????????例如maxrepeat([1,?1,?2,?2,?2,?3,?3,?3,?3,?3,?3,?4])將返回3.

????????function?maxrepeat(arr)?{

????????????var?obj?=?{}

????????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????????var?char?=?arr.splice(i,?1).toString()//?拿到?數(shù)組的每一個值??并刪除第一位

????????????????//?console.log(char);

????????????????obj[char]?=?obj[char]?||?0//把數(shù)組出現(xiàn)過的值?當做對象的鍵?{1:0,2:1}

????????????????obj[char]++//?累加計數(shù)

????????????????i--//?從頭開始

????????????}

????????????console.log(obj);

????????????var?max?=?0

????????????for?(var?key?in?obj)?{

????????????????console.log(key);

????????????????if?(obj[key]?>?max)?{

????????????????????max?=?key

????????????????}

????????????}

????????????console.log(max);

????????}

????????maxrepeat([1,?1,?2,?3,?3,?3,?4,?5])

????????console.log(maxrepeat([1,?1,?2,?2,?2,?3,?3,?3,?3,?3,?3,?4]));

????????7、根據數(shù)組中每個對象的i屬性抒蚜,由小到大排序如下數(shù)組掘鄙。

????????var?arr?=?[{?i:?5,?v:?1?},?{?i:?2,?v:?4?},?{?i:?3,?v:?2?},?{?i:?1,?v:?5?},?{?i:?4,?v:?3?}];

????????var?arr?=?[{?i:?5,?v:?1?},?{?i:?2,?v:?4?},?{?i:?3,?v:?2?},?{?i:?1,?v:?5?},?{?i:?4,?v:?3?}];

????????function?compare(arr)?{

????????????return?function?(a,?b)?{

????????????????var?val1?=?a[arr];

????????????????var?val2?=?b[arr];

????????????????return?val1?-?val2;

????????????}

????????}

????????console.log(arr.sort(compare('i')))

????????var?arr?=?[{?i:?5,?v:?1?},?{?i:?2,?v:?4?},?{?i:?3,?v:?2?},?{?i:?1,?v:?5?},?{?i:?4,?v:?3?}];

????????arr.sort(function?(a,?b)?{

????????????return?a.i?-?b.i

????????})

????????console.log(arr);

????????9、利用原生JS實現(xiàn)?數(shù)組的翻轉?非reverse嗡髓、

????????var?str?=?'hello'

????????var?arr?=?str.split('')

????????console.log(arr);

????????function?myreverse(arr)?{

????????????for?(var?i?=?0;?i?<?arr.length?/?2;?i++)?{

????????????????var?temp?=?arr[i]

????????????????arr[i]?=?arr[arr.length?-?i?-?1]//’dl‘

????????????????arr[arr.length?-?i?-?1]?=?temp

????????????}

????????????return?arr.join('')

????????}

????????console.log(myreverse(arr));

????????10.1?-?100任意取10個數(shù)?放入數(shù)組并排序

????????var?arr?=?[];

????????for?(var?i?=?0;?i?<?10;?i++)?{

????????????var?res?=?Math.floor(Math.random()?*?101?+?1);

????????????arr.push(res);

????????}

????????arr.sort(function?(a,?b)?{

????????????return?a-b;

????????});

????????console.log(arr);

????????11操漠、請用js計算0?-?10000中0出現(xiàn)的次數(shù)

????????var?arr?=?[]

????????for?(var?i?=?0;?i?<=?10000;?i++)?{

????????????var?pos?=?i.toString().split('')//[1,2]??[1,3]

????????????pos.map(function?(item)?{//[1,0]

????????????????if?(item?==?0)?{

????????????????????arr.push(item)

????????????????}

????????????})

????????}

????????console.log(arr.length);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浊伙,更是在濱河造成了極大的恐慌撞秋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚣鄙,死亡現(xiàn)場離奇詭異吻贿,居然都是意外死亡,警方通過查閱死者的電腦和手機哑子,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門舅列,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卧蜓,你說我怎么就攤上這事帐要。” “怎么了弥奸?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵榨惠,是天一觀的道長。 經常有香客問我盛霎,道長赠橙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任摩渺,我火速辦了婚禮简烤,結果婚禮上剂邮,老公的妹妹穿的比我還像新娘摇幻。我一直安慰自己,他們只是感情好挥萌,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布绰姻。 她就那樣靜靜地躺著,像睡著了一般引瀑。 火紅的嫁衣襯著肌膚如雪狂芋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天憨栽,我揣著相機與錄音帜矾,去河邊找鬼。 笑死屑柔,一個胖子當著我的面吹牛屡萤,可吹牛的內容都是我干的。 我是一名探鬼主播掸宛,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼死陆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唧瘾?” 一聲冷哼從身側響起措译,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤别凤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后领虹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體规哪,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年塌衰,在試婚紗的時候發(fā)現(xiàn)自己被綠了由缆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡猾蒂,死狀恐怖均唉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情肚菠,我是刑警寧澤舔箭,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蚊逢,受9級特大地震影響层扶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜烙荷,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一镜会、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧终抽,春花似錦戳表、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圃郊,卻和暖如春价涝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背持舆。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工色瘩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逸寓。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓居兆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親席覆。 傳聞我的和親對象是個殘疾皇子史辙,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359