1.給出一個字元串,顯示出字元串里重覆次數最多的元素,並顯示次數出來 如:"sdoiokasdhdiuwasad" 輸出: 出現最多:d 出現次數:4 2.給出一個數組,數組中的元素最多可以出現兩次 3.給出一個數組,求這個數組的最大和 如[34,5,1,22],輸出534221 ...
1.給出一個字元串,顯示出字元串里重覆次數最多的元素,並顯示次數出來
如:"sdoiokasdhdiuwasad"
輸出: 出現最多:d 出現次數:4
1 function remenber(str){ 2 var o = {}; 3 for (var i = 0; i < str.length; i++) { 4 if (o[str[i]]) { //char就是對象o的一個屬性,o[char]是屬性值,o[char]控制出現的次數 5 o[str[i]]++; //次數加1 6 } else { 7 o[str[i]] = 1; //若第一次出現,次數記為1 8 } 9 } 10 console.log(o); //輸出的是完整的對象,記錄著每一個字元及其出現的次數 11 //遍歷對象,找到出現次數最多的字元和次數 12 var max = 0; 13 for (var key in o) { 14 if (max < o[key]) { 15 max = o[key]; //max始終儲存次數最大的那個 16 } 17 } 18 for (var key in o){ 19 if (o[key] == max){ 20 //console.log(key); 21 console.log("最多的字元是" + key); 22 console.log("出現的次數是" + max); 23 } 24 } 25 } 26 remenber("sdoiokasdhdiuwasad");
2.給出一個數組,數組中的元素最多可以出現兩次
1 function newarr(arr){ 2 var tmp = []; 3 var str = ","; 4 for(var i = 0; i < arr.length; i++){ 5 var sm = str.match(new RegExp(","+arr[i]+",", "g")); 6 if(!sm || sm.length < 2) { 7 tmp.push(arr[i]); 8 str += arr[i] + ","; 9 } 10 } 11 console.log("原數組是:" + arr); 12 console.log("清除後的數組:"+tmp); 13 } 14 newarr([12,34,5,6,32,12,34,56,5,12,34]);
3.給出一個數組,求這個數組的最大和
如[34,5,1,22],輸出534221
function a(arr){ var st = []; var res = []; for(var i=0; i < arr.length; i++){ //將數組元素轉換為string類型 var arr1 = arr[i].toString(); st.push(arr1); } console.log(st[1][0]); for(var j = 0; j < arr.length-1; j++){ //用冒泡排序將數組的元素的第一個數進行排序的到從小到大的排序 for(var k = 0; k < arr.length-j-1; k++){ if(st[j][0] > st[j+1][0]){ var temp = st[k]; st[k] = st[k+1]; st[k+1] = temp; } } } for(var c = st.length; c >= 0; c--){//將冒泡排完序後的到的數組進行倒序排序 res.push(st[c]); } console.log(res.join(""));//最後合併元素 } a([12,23,34,5]);