首頁 >web前端 >js教程 >JavaScript趣題:哪些在裡面?

JavaScript趣題:哪些在裡面?

黄舟
黄舟原創
2017-02-13 16:02:441064瀏覽

已知有兩個字串數組,暫且叫它們a1,a2吧。

現在的任務是,從a1中,找出所有是a2內元素子字串的元素,存放進新數組。

將這個新陣列依照字典序排序,並回傳。

來個例子:

a1 = ["arp", "live", "strong"]

a2 = ["lively", "alive", "harp", "sharp", "armstrong"]


回傳["arp", "live", "strong"]

在這裡,"arp""harp"的子字串," "harp"的子串,

"live"的子串,所以能被回傳。

再看個例子:


a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]

回傳[]

這裡a1

內都不符合子字串規則,所以回傳空數組。

好了,咋們來看怎麼解決:

首先,看到子串,就估摸著需要個判斷是否是子串的方法:


if(typeof String.prototype.isSubstringOf === "undefined"){
    String.prototype.isSubstringOf = function(str){
        return str.indexOf(this) >= 0;
    };
}
然後,一一遍歷a1
function inArray(array1,array2){
    var newArray = [];
    for(var i=0;i<array1.length;i++){
        var temp = array1[i];
        if(temp){
            for(var j=0;j<array2.length;j++){
                if(temp.isSubstringOf(array2[j])){
                    newArray.push(temp);
                    break;
                }
            }
        }
    }
    return newArray.sort();
}

然後,一一遍歷

a1

當前元素是否為

a2

內元素的子字串,是,就push進新數組。

接著,等循環都結束了,新數組也填充了。 那字典序排序該怎麼做呢?莫非還要寫演算法?

沒這麼複雜,JavaScript內建的排序,預設就是字典序的。

那麼,就對新數組直接地

sort
並且回傳吧!

🎜🎜rrreee🎜🎜以上就是JavaScript趣題:哪些在裡面?的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn