JavaScript の楽しい質問: 何が入っているのですか?

黄舟
リリース: 2017-02-13 16:02:44
オリジナル
1044 人が閲覧しました

2 つの文字列配列があることがわかっています。それらを a1a2 と呼びましょう。

現在のタスクは、a2の要素substringsであるすべての要素をa1から見つけて、新しい配列に格納することです。

この新しい配列を 辞書順で並べ替えて返します。

例を見てみましょう:

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

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


["arp", "live", "strong"] を返します

ここで、"arp""harp" の部分文字列であり、"live""lively"部分文字列なので、それを返すことができます。

別の例を見てみましょう:

a1 = [「タープ」、「ネズミ」、「雄牛」]

a2 = [「活発」、「生きている」、「ハープ」、「鋭い」、「アームストロング」]


Returns []

a1 の部分文字列ルールがどれも満たされていないため、空の配列が返されます。

それでは、それを解決する方法を見てみましょう:

まず、部分文字列を見たときに、それが部分文字列であるかどうかを判断するメソッドが必要であると推定します:


if(typeof String.prototype.isSubstringOf === "undefined"){
    String.prototype.isSubstringOf = function(str){
        return str.indexOf(this) >= 0;
    };
}
ログイン後にコピー

次に、 a1 を実行します。 1 つずつ、現在の要素が a2 の要素の部分文字列であるかどうかを判断し、そうであれば、それを新しい配列にプッシュします。

その後、ループが終了すると、新しい配列が埋められます。

辞書順ソートを行うにはどうすればよいですか?まだアルゴリズムを記述する必要がありますか?

JavaScript に組み込まれている並べ替えは、デフォルトでは辞書順です。

その後は、新しい配列を直接 sortして返すだけです。


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();
}
ログイン後にコピー


上記は JavaScript に関する楽しい質問です。これには何が入っていますか?関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!