JavaScript コードを簡潔にするためのヒント

coldplay.xixi
リリース: 2021-03-15 09:35:03
転載
1524 人が閲覧しました

JavaScript コードを簡潔にするためのヒント

この記事は主に、仕事で輝けるようになる簡単な JavaScript コードのヒントを皆さんと一緒に学ぶことを目的としています。

注: 以下のコード比較には、絶対的な正誤はありません。一部の記述方法は、使用シナリオが比較的単一です。各人の習慣や好みに基づいて判断できます。より良い意見や異なる意見がある場合は、退出してください。交換するメッセージ~

(無料学習の推奨事項: javascript ビデオ チュートリアル)

1. ショートサーキット操作:

このような状況に遭遇した場合、

const res1 = item.a ? item.a : item.b // 看起来很是简洁const res2 = item.a ? item.b : item.a // 看起来很是简洁
ログイン後にコピー

を使用して実装しますか? それとも JS 論理演算を使用して実装しますか?

const res1 = item.a || item.b;const res1 = item.a && item.b;
ログイン後にコピー

2. 条件判断によって変数にブール値を割り当てる正しい方法:

結果を得るために単一の値を比較する必要がある場合は、次を使用します。直接操作、そうでない場合は、if の判断がはるかに簡単になります~

let res;if(a === '余光'){
	res = true }else{
	res = false;}// good?const res = a === '余光'
ログイン後にコピー

3. if で配列の長さがゼロでないかどうかを判断する正しい方法:

シナリオ: 配列がメモリ要素に存在する場合、次の操作を実行します:

// badif (arr.length !== 0) {
    // todo}// goodif (arr.length) {
    // todo}
ログイン後にコピー

同様に、配列の長さが空かどうかを判断する必要がある場合:

if(!arr.length){
	// todo}
ログイン後にコピー

4 if の判断を簡素化するには、インクルードを使用します:

シナリオ: パラメータが 1、2、3、4 に等しい場合、次のステップに進みます。

最初のバージョンのコード:

if(a === 1 || a === 2 || a === 3 || a ===4){
	// todo}
ログイン後にコピー

読んだ後、異常な頭痛がするようになりました。次に、コードを次のように変更しました:

if([1,2,3,4].includes(a)){
	// todo}
ログイン後にコピー

5。修飾された値があるかどうかを判断するには、some を使用します:

シナリオ: n

const itemList = [
	{name: '手机', price: 1000},
	{name: '手机壳', price: 10},
	{name: '帽子', price: 50},]function checkData(n){
	for(let i = 0; i < item.length; i++){
		if(item.price < n){
			return true;
		}
	}
	return false;}
ログイン後にコピー
# 未満の価格の製品があるかどうかを確認する ##メソッドは記述されていますが、js には非常に多くの配列メソッドが用意されているため、それを使用します。
const itemList = [
	{name: &#39;手机&#39;, price: 1000},
	{name: &#39;手机壳&#39;, price: 10},
	{name: &#39;帽子&#39;, price: 50},]const checkData = (n) => itemList.some(item => item.price < n)
ログイン後にコピー

再度最適化

const checkData = (n, itemList) => itemList.some(item => item.price < n)
ログイン後にコピー

6. filter メソッドを使用して元の配列をフィルターし、新しい配列を形成します

シナリオ: いくつかの不要な要素を削除します。例: , 各データの ID は後続の操作に必要なデータです。欠陥のあるデータを排除するために、これを行います:

const data = [
    { name: &#39;手机&#39;, price: 1000, id: 1 },
    { name: &#39;手机壳&#39;, price: 10, id: 2 },
    { name: &#39;帽子&#39;, price: 50, id: &#39;&#39; },]// badlet newArr = []for (let i = 0; i < data.length; i ++) {
    if (data.id) {
        newArr.push(arr[i])
    }}
ログイン後にコピー

「フィルタリング」の概念をマスターするために、次のように処理します。 :

const afterData = data.filter(item => item.id);
ログイン後にコピー

7. マップを使用して配列内の要素をバッチ処理します:

シナリオ: 価格に関して言えば、インタラクションで取得する価格フィールドは通常、セント単位ですが、どうやって表示すればよいのでしょうか?

const data = [10000, 20000, 980000]const afterData = data.map(price => price / 100)
ログイン後にコピー

8. 配列を分解して変数値を置き換えます

シナリオ: 2 つの値を交換する必要があります

// badlet a = 1,
    b = 2let temp = a
a = b
b = temp// goodlet a = 1,
    b = 2[b, a] = [a, b]
ログイン後にコピー

9。分割 コードへの統合:

シナリオ: オブジェクト内の要素を取得し、デフォルト値を設定します

コードの最初のバージョンを作成します:

// badsetForm (person) {
    this.name = person.name    this.age = person.age 
}// goodsetForm ({name = '余光', age}) {
    this.name = name    this.age = age 
}
ログイン後にコピー

10. 複数の方法を組み合わせると何ができるでしょうか? (例 1)

これはコードの最後の簡潔なアイデアです。他の人にインスピレーションを与えるために、特定のシーンの距離を取ってみましょう。皆さんもコメント エリアにメッセージを残してください~

シナリオ:

フロントエンドによって取得されたデータは

data = [
    { id: 1, name: '一级标题-1' },
    { id: 2, name: '一级标题-2' },
    { id: 3, name: '二级标题-1', pid: 1 },
    { id: 3, name: '一级标题-3' },
    { id: 3, name: '二级标题-2', pid: 2 },]
ログイン後にコピー

です。次のような関連付け関係を形成する必要があります。配列によって提供される API:

needData = [
    {
        id: 1,
        name: '一级标题-1',
        children: [
            { id: 3, name: '二级标题-1', pid: 1 }
        ]
    },
    {
        id: 2,
        name: '一级标题-2',
        children: [
            { id: 5, name: '二级标题-2', pid: 2 }
        ]
    },
    { id: 4, name: '一级标题-3' },]
ログイン後にコピー

Idea:

親を持つ要素を検索

正しい場所に送信
  1. すべてを返す親フィールド (pid) のないデータ
  2. さらに同様のアイデアや操作がある場合は、必ずメッセージを残してください

関連する無料学習の推奨事項:

javascript(ビデオ)

以上がJavaScript コードを簡潔にするためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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