第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

javaScript數(shù)組或者字符串去重的---三種方法

標(biāo)簽:
Node.js JQuery JavaScript

一,利用indexOf方法

var arr = [ 2,4,5,6,2,4,6,1,7,8,5,6 ];
var temp=[];
function  cancelRepeat (arr) { 
        for (var i = 0; i<arr.length ; i++) {
//如果temp中没有arr[i],则把它加入到temp中
           if ( temp.indexOf( arr[i] ) === -1 ) {
                  temp.push(arr[i]);
               }
        }
}
cancelRepeat( arr );
console.log(temp);
[2, 4, 5, 6, 1, 7, 8]

二,利用for循环嵌套和for循环里的if判断,然后封装成function函数, 这种效率低,但是符合大多数人的思路: 设置一个数组容器,和一个标记。把数组arr中的转移到temp数组中,如果temp中有这个元素就把标志设置为true,然后break掉。

var arr = [ 2,4,5,6,2,4,6,1,7,8,5,6 ];
var  temp = [] , isRepeated ;
function  cancelRepeat (arr) {
     for (var i =0; i< arr.length; i++) {
                  isRepeated = false;
                  for ( var j = 0; j < temp.length;  j++) {
                        if ( arr[i] === temp[j] ) {
                            isRepeated = true;
                           break;
                            }
                    }
                 if ( !isRepeated ) {
                       temp.push( arr[i] );
                       } 
           }
}
cancelRepeat(arr);
console.log(temp);
[2, 4, 5, 6, 1, 7, 8]

第二种方法的改进型
我们可以用一个哈希表(hashtable)的结构记录已有的元素,这样就可以避免内层循环。恰好,在Javascript中实现hashtable是极为简单的,改进如下:

 var arr = [ 2,4,5,6,2,4,6,1,7,8,5,6 ];
 var result = [], hash = {};   
 function cancelRepeat (arr) {  
       for (var i = 0, elem;  (elem = arr[i])  !=  null ;  i++) { 
             if (!hash[elem]) {
             result.push(elem); 
             hash[elem] = true;
              }
         } 
} 
cancelRepeat(arr);
console.log(result); 
[2, 4, 5, 6, 1, 7, 8]

查找字符串中出现次数最多的字符,并且统计次数

function acount (str){
  // 转换为数组
  let arr = str.split("")
  // 定义一个容器
  let temp = {}
  for(let i in arr){
       if(temp[arr[i]]){ // 如果temp中存在的话,就temp[arr[i]] 的值加1
           temp[arr[i]] +=1
       }else{         // 如果temp中存在的话,就temp[arr[i]] 的值等于1
            temp[arr[i]] = 1
       }
 }
 let num  =0;
 let member = "";
 for(let j in temp){
 if(temp[j] >= num){
       num = temp[j]
       member = j
   }
 } 
 console.log(`出现次数最多的是:${member},共出现${num}次`)
}
acount("xingjizhengba")

这个解决方法是有问题的,这个方法只能解决某一个出现次数最多的字符,因为如果有多个出现相同次数的字符,那么只能检查到最早出现的那个。

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消