ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

Webとアプリケーションがより複雑になるにつれて、JavaScriptとNode.jsは、開発者のレパートリーにおいてますます一般的な要件になりつつあります。 code-fooを改善し、発生する頭痛の種を最小限に抑えるために、コードの早い段階で、単純なタスクをすばやく実行するいくつかの関数を定義できます。

JavascriptはJavaと同じではないことに注意してください。ここで違いを確認してください。

1。配列内の値をシャッフルする

カードのデッキをシャッフルするのと同じように、このワンライナーを使用して、JavaScriptで好きなだけ配列の値をシャッフルすることもできます。

const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

トランプの例えを踏まえると、52個の値をシャッフルしたい場合は次のようになります。

let myarray = Array.from({length:52},(v,k)=>k+1);
 
console.log(shuffleArray(myarray));

コードは、コンソール出力でランダムに乱雑な値を明らかにする必要があります。

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

2。日付が週末か平日かを確認します

単純な剰余オペランドを使用することで、JavaScriptで1日が週末に該当するかどうかを簡単に確認できます。

const isWeekend = (date) => date.getDay() % 6 == 0;

これを変更して、問題の日が平日に当たるかどうかを確認する場合は、最後の比較を逆にします。

const isWeekday = (date) => date.getDay() % 6 !== 0;

次のコードでは、今日が週末かどうかを確認します。

console.log(isWeekend(new Date()));

個別のisWeekdayを定義する代わりに またはisWeekend 変数の場合は、NOTを使用できます if-then-elseを表現する際のオペランド 次のような2つの変数のいずれかに対するステートメント:

if(!isWeekend(new Date())) {
    console.log("Today falls on a weekday.");
 
} else {
    console.log("Today falls on a weekend.");
}
9 JavaScript/Node.jsあなたが知っておくべきワンライナー

3。数値を特定の小数点にカットする

ユーザーに提供する出力は可能な限りシンプルである必要があり、膨大な文字列の数字が文字列化されているのを見るよりも、サイトやアプリの魅力を損なうものはありません。数値の重要度の低い小数点を切り取り、そのようにユーザーに表示するには、次の気の利いた定義を取得します。

const decimalFormat = (n, places) => ~~(Math.pow(10, places) * n) / Math.pow(10, places);

これをテストするために、私はとんでもない小数点以下の桁数で数値を定義し、このクイック関数を呼び出して小数点以下2桁にカットします。

let deciwow = 299.39542014592
 
console.log(decimalFormat(deciwow, 2));

結果は目障りではないはずです。

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

4。温度の変換

JavaScriptには、華氏の摂氏を変換する標準化された方法はありませんが、2つの単純なワンライナーを使用して、独自の標準を作成できます。

摂氏から華氏まで:

const cToF = (celsius) => celsius * 9/5 + 32;

華氏から摂氏まで:

const fToC = (fahrenheit) => (fahrenheit - 32) * 5/9;

私の町では、気温は摂氏-2度です。摂氏から華氏への変換ワンライナーを使用して、これが米国に住む人にとって何を意味するかを知ることができます:

cToF(-2);

その式は華氏28.4度の温度をもたらします。

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

5。誰かがダークモードを使用しているかどうかを確認する

表示するコンテンツがコードを使用している人の配色を尊重するようにしたい場合、JavaScriptには、誰かがダークモードを使用しているかどうかを検出する方法が含まれているため、それに応じて色を調整できます。この方法は書くのが少し複雑ですが、このワンライナーを使用してこれを短くすることができます:

const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

この変数を使用したチェックの例を次に示します。

if (isDarkMode) {
    console.log("This screen is in dark mode.");
} else {
    console.log("This screen is not using dark mode.");
}

このコードは、ブラウザのJavaScriptでのみ機能することに注意してください。 Node.jsはwindowのサポートを実装していません 。

6。数値の配列の平均を取得する

データセットを処理する場合、JavaScriptには配列に付属する便利な関数があり、特定の1つのテーブルのすべての値の合計を取得し、これらの数値をテーブルの長さで割るのに必要な演算を実行できます。これを1行のコードでエレガントに行うには、次の操作を行うだけで済みます。

const getAverage = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length;

ここで、データセットを作成し、そのすべての値の平均をコンソールから出力します。

let dataset = [2, 14, 88, 204, 1515, 1294, 12, 144];
 
console.log(getAverage(dataset));

このコードを使用すると、出力は409.125になります。

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

7。 UUIDを生成する

アプリケーションを使用している人々から統計とデータを収集する場合(たとえば、Cookieを生成することによって)、侵襲的ではなくこれを行うための最良の方法の1つは、UUID(Universally Unique Identifier)を生成することです。 JavaScriptには、RFC4122準拠のUUIDを生成する簡単な方法が含まれていません(ただし、Node.jsにはuuidがあります この機能をすぐに提供するnpmパッケージ)。

JSでは、次の1行の式を使用して、ユーザー向けに新しく作成されたUUIDをポップアウトできます。

const genUUID = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));

ここで、出力をテストします:

console.log(genUUID());
9 JavaScript/Node.jsあなたが知っておくべきワンライナー

8。 2つの日付の間の日数を取得する

特定の値(ユーザーのアカウントなど)の年齢を決定するときは、特定の時点から経過した日数を計算する必要があります。これを行う簡単なワンライナーは次のとおりです。

const ageDays = (old, recent) => Math.ceil(Math.abs(old - recent) / (1000 * 60 * 60 * 24));

ユースケースの例として、2012年12月28日にアカウントを作成したユーザーの年齢を評価していると仮定し、この宣言を使用して、その日付から今日までの日数を取得します。

console.log(ageDays(new Date('2012-12-28'), new Date()));

これを書いている時点では、3298日の結果が得られるはずです。

9 JavaScript/Node.jsあなたが知っておくべきワンライナー

9。範囲内で乱数を生成する

乱数を生成するだけでは不十分な場合があります。生成される条件を制限する必要があるかもしれません。このワンライナーを使用すると、特定の指定範囲内の数値を生成できます:

const rangeRandom = (low, high) => Math.floor(Math.random() * (high - low + 1)) + low;

これをテストするのは簡単なはずです:

console.log(rangeRandom(400, 20000));
9 JavaScript/Node.jsあなたが知っておくべきワンライナー よくある質問

1。 CookieでUUIDを使用する理由

Cookieは本質的に侵入的であり、ユーザーのマシン上のスペースを占有するため、これらの機器を使用してデータを収集するときは、可能な限り効率的かつ非侵襲的であることを目指す必要があります。 UUIDを使用すると、2つの利点があります。まず、識別子の長さが128ビットしかないため、クライアントベースのストレージで占有されるスペースが最小限に抑えられます。第二に、それはユーザーに属する個人データに依存します。

2。ダークモードを検出すると、Node.jsで「ウィンドウが定義されていません」というエラーが発生します。どうすればよいですか?

Node.jsは、JavaScriptと同じ固有のクライアント/サーバー関係を持たないため、クライアント側モジュールを呼び出すことはできません。この記事のダークモード検出ワンライナーは、特にブラウザベースのJavaScriptを対象としています。

3。このコードはすべてのブラウザに共通ですか?

JavaScriptコードは、普遍的に機能することになっているインタープリターを使用します。理論的にはすべてのブラウザで機能しますが、特に非常に古いソフトウェアでは、コードの解釈方法が若干異なる場合があります。ここで表現されているすべてのワンライナーの場合、ユーザーがコードを実行しているブラウザーに関係なく、すべて同じ結果が返されるはずです。ただし、JavaScriptで一般的に使用する一部の機能は、Pale Moon、Internet Explorer、または現在活発に開発されている2000年代初頭のバージョンのブラウザでは機能しない可能性があることに注意してください。


  1. Samsung Galaxy S9:知っておくべきことすべて

    長い待ち時間がついに終わりました! Samsung の主力携帯電話 S9 および S9+ は、MWC (Mobile World Conference) 2018 で最近発表されました。 バルセロナで開催された Mobile World Conference 2018 では、Samsung の Galaxy シリーズの最大かつ最新の携帯電話がリリースされました。 サムスンの主力携帯電話は、以前のバージョンよりも多くの変更が加えられています。この記事では、Samsung Galaxy S9 について知っておくべきことをすべて書き留めました。 Samsung Galaxy S9:知っておくべ

  2. ウェブサイトのブロックを解除する:知っておくべき 5 つの解決策

    インターネットは巨大なプラットフォームであり、それなしでは生きていけない切実なニーズです。そうは言っても、私たちはほとんどの時間を Web サーフィンに費やしていますが、24 時間年中無休でインターネットにアクセスしているため、それは控えめな表現です。メールをチェックしたり、記事を読んだり、単にオンライン ショッピングをしたりする場合でも、私たちは 1 日中ガジェットにくぎ付けになっています。 しかし、特定の Web サイトが読み込めなかったり、お住まいの地域で制限されていたりすると、非常にイライラしませんか?はい、私たちは皆苦労してきましたが、今でもこのトラウマに直面しています。 ウェブ