溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js中級(jí)腳本算法有哪些

發(fā)布時(shí)間:2021-11-08 09:56:02 來源:億速云 閱讀:149 作者:小新 欄目:云計(jì)算

這篇文章主要介紹js中級(jí)腳本算法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

摘要: 區(qū)間求值算法 function sumAll(arr) { var sum =0; if(arr[0]<=arr[1]){ for(var i=arr[0];i<=arr[1];i++){ sum = sum + i; } }else{ for(var i=arr[1];i<=arr[0];i++){ sum = sum + i; } } return sum; } sumAll([1, 4]); 傳遞給你一個(gè)包含兩個(gè)數(shù)字的數(shù)組。

區(qū)間求值算法

function sumAll(arr) {
  var sum =0;
  if(arr[0]<=arr[1]){
    for(var i=arr[0];i<=arr[1];i++){
      sum = sum + i;
    }    
  }else{
      for(var i=arr[1];i<=arr[0];i++){
        sum = sum + i;
      }
    }
return sum;
}

sumAll([1, 4]);

傳遞給你一個(gè)包含兩個(gè)數(shù)字的數(shù)組。返回這兩個(gè)數(shù)字和它們之間所有數(shù)字的和。最小的數(shù)字并非總在最前面

找出數(shù)組間差異算法

function diff(arr1, arr2) {
    var newArr = [];
     var lena =  arr1.length;
     var lenb = arr2.length; 
    for(var i = lena;i >= 0;i--){
         for(var j = lenb;j >= 0;j--){
                if(arr1[i] == arr2[j]){
                    arr1.splice(i,1);
                     arr2.splice(j,1);     
             }
         }
    }
    newArr = arr1.concat(arr2);
    return newArr;
}
diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);

比較兩個(gè)數(shù)組,然后返回一個(gè)新數(shù)組,該數(shù)組的元素為兩個(gè)給定數(shù)組中所有獨(dú)有的數(shù)組元素。換言之,返回兩個(gè)數(shù)組的差異

數(shù)字轉(zhuǎn)羅馬數(shù)字

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){   //forEach方法中的function回調(diào)支持3個(gè)參數(shù),第1個(gè)是遍歷的數(shù)組內(nèi)容;第2個(gè)是對(duì)應(yīng)的數(shù)組索引,第3個(gè)是數(shù)組本身
        while(num >= item){  
            str += romans[index];  
            num -= item;  
        }  
     });  
    return str.toUpperCase();  
}  
convert(36);

將給定的數(shù)字轉(zhuǎn)換成羅馬數(shù)字。所有返回的 羅馬數(shù)字 都應(yīng)該是大寫形式

對(duì)象搜索算法

function where(collection, source) {
    var arr = [];
    var porp=Object.keys(source);   //Object.keys()方法返回一個(gè)數(shù)組傳入對(duì)象,返回屬性名
    arr=collection.filter(function(obj){
        for(var i=0; i<porp.length; i++){
            if(obj[porp[i]]!==source[porp[i]]){  //判斷參數(shù)1中各個(gè)對(duì)象的porp屬性的值是否與參數(shù)二中的porp屬性值相等
                return false;
            }
        }
         return true;
    });  
    return arr;
}
where([{ first: "Romeo", last: "Montague",a:"aaa" }, { first: "Mercutio", last: null,b:"bbb" }, { first: "Tybalt", last: "Capulet",d:"ddd",c:"ccc" }], { last: "Capulet", c:"ccc"});

寫一個(gè) function遍歷一個(gè)對(duì)象數(shù)組(第一個(gè)參數(shù))并返回一個(gè)包含相匹配的屬性-值對(duì)(第二個(gè)參數(shù))的所有對(duì)象的數(shù)組。如果返回的數(shù)組中包含 source 對(duì)象的屬性-值對(duì),那么此對(duì)象的每一個(gè)屬性-值對(duì)都必須存在于 collection 的對(duì)象中。

例如,如果第一個(gè)參數(shù)是 [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }],第二個(gè)參數(shù)是 { last: "Capulet" },那么你必須從數(shù)組(第一個(gè)參數(shù))返回其中的第三個(gè)對(duì)象,因?yàn)樗俗鳛榈诙€(gè)參數(shù)傳遞的屬性-值對(duì)

查詢替換算法

function myReplace(str, before, after) {  
    var len = before.length;
    if(before.charAt(0)>'A' && before.charAt(0)<'Z'){
        after = after.charAt(0).toUpperCase()+after.slice(1);
     }else{
        after = after.toLowerCase();
    }
    str = str.replace(before,after);
    return str;
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "Leaped");

使用給定的參數(shù)對(duì)句子執(zhí)行一次查找和替換,然后返回新句子。

第一個(gè)參數(shù)是將要對(duì)其執(zhí)行查找和替換的句子。

第二個(gè)參數(shù)是將被替換掉的單詞(替換前的單詞)。

以上是“js中級(jí)腳本算法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI