JavaScript 文字列分解に関する質問_javascript スキル
ある企業に面接に行きました(社名は言いませんが、この問題集は今でも使われるかもしれません)現場で30分で一連の質問をしたのですが、そのうちの1つが次のようなものでした。
js で関数を記述する必要があります。次の形式の受信 URL 文字列に対して、対応するオブジェクトを返します。
例:
文字列 a='?name=zhiyelee&blog=www.tsnrose.com';
が返された場合、b={'name':'zhiyelee','blog':'www .tsnrose.com'}
その時は時間が比較的短かったため、実装にいくつかの問題があり、帰ってから考えて次のようにまとめました。 >正規表現Expressionを使う方法と文字列のsplit関数を使う方法の2つを考えました。
1. 正規表現処理を使用する
最初に考えたのは、これがより難しく、最も簡単に作成できるかどうかです。この方法は、文字列関数を直接使用するよりも効率が低くなります。以下でこの効率を検証します~
このメソッドのアイデアは非常に単純です。正規表現を使用して毎回 '***=###' の文字列と一致し、ループして最後に削除します。モール。
コードは次のとおりです
var res = {};
var reg = /(w )=(w )/g;
while ((a = reg.exec(str))
res[1]] = a[2];
}
return
};
の処理も従来通り比較的簡単ですが、正規表現を使うよりも書くのが確実に面倒です。
私のアイデアは、最初に '&' を使用して元の文字列を複数の文字列に分割し、各文字列のスタイルは '***=###' のようなものにしてから、文字列に split('=') を適用することです。 。 (このメソッドは正規表現を使用しません。もちろん通常の Split(/&|=/) を使用できます。
コードは次のとおりです
var temp, res = {},
i, str = str.slice(1 );
temp = str.split('&');
for (i = 0; i
res[ret[0]] = ret[1]
}
効率この 2 つの方法の問題点
正規表現の効率が少し低いことはよく知られているので、最初は最初の解決策の効率が 2 番目の解決策の効率よりも低いはずだと思い、測定してみました。それ以外の場合:
getNRReg の実行には 4399 ミリ秒かかります
getNRSplit の実行には 6116 ミリ秒かかります
完全なソース コードを表示します:
jsfiddle
、自分でテストできます~
追記:
最後に、Sina Weibo 2011-06-15 からのフロント用の筆記テスト質問を添付します。 -北京ポスト情報会議での終了位置: 正規表現を使用して、特定の文字に隣接する同一の文字を削除します。たとえば、文字列「fdaffdaaklfjk」は、処理後に「fdafdakljk」になります。
私の答えについては、
jsfiddle
を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull

JavaScriptはPowerPointで実行でき、外部JavaScriptファイルを呼び出したり、VBAを介してHTMLファイルを埋め込んだりすることで実装できます。 1. VBAを使用してJavaScriptファイルを呼び出すには、マクロを有効にし、VBAプログラミングの知識を持つ必要があります。 2。JavaScriptを含むHTMLファイルを埋め込みます。これは、シンプルで使いやすいが、セキュリティ制限の対象となります。利点には、拡張機能と柔軟性が含まれますが、欠点にはセキュリティ、互換性、複雑さが含まれます。実際には、セキュリティ、互換性、パフォーマンス、ユーザーエクスペリエンスに注意を払う必要があります。
