ホームページ >ウェブフロントエンド >jsチュートリアル >Array[index] に対する Array.at() の使用

Array[index] に対する Array.at() の使用

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-19 14:30:15713ブラウズ

Using Array.at() over Array[index]

この記事では、配列要素にアクセスする際に、Array.prototype.at() よりも Array[index] の方が理想的である理由を探ります。

モチベーション

以前は、配列要素にアクセスする場合、Array[index] などの Array[1] を使用していました。これは私がよく知っていることであり、配列要素を取得する方法を学んだ方法です。

しかし、最近コードレビューで同僚が「インデックスを直接使用する代わりに、Array.prototype.at() を使用しないのはなぜですか?」と質問しました。

私のコードは次のとおりです:

<code class="language-javascript">const element = arr[1];</code>
彼は次のように変更することを提案しました:

<code class="language-javascript">const element = arr.at(1);</code>
このアプローチは非常にシンプルで直感的に見えるので、私にとって際立っています。

Array.prototype.at() の使用方法

は引数として整数を受け取り、配列内の対応する要素を返します。 Array.prototype.at()

たとえば、配列の場合:

<code class="language-javascript">const arr = ["One", "Two", "Three"];</code>
電話:

<code class="language-javascript">arr.at(0); // 返回 "One"</code>
これは角括弧表記

に相当します。何が違うの?と疑問に思われるかもしれません。次に、このアプローチを使用する利点について詳しく説明します。 array[0]

Array[index] が理想的ではないのはなぜですか?

の代わりに Array.prototype.at() を使用する必要があるいくつかのシナリオを見てみましょう。 Array[index]

配列の最後の要素を取得します

文字列の配列があるとします:

<code class="language-javascript">const sports = ["basketball", "baseball", "football"];</code>
配列の最後の要素「フットボール」を取得するには、次のように記述できます:

<code class="language-javascript">const lastElement = sports[sports.length - 1];</code>
これは正しいアプローチですが、

メソッドを使用するとより簡潔に記述することができます。 Array.prototype.at()

読みやすくなりましたか?
<code class="language-javascript">const lastElement = sports.at(-1);</code>

型推論

TypeScript では、角かっこ表記は型推論に

を含みません。

undefined

<code class="language-typescript">const arr: string[] = [];
const element = arr[0];
console.log(element); // undefined</code>
の型は、

ではなく element として推論されます。 string string | undefinedこのコードを書くときに TypeScript がコンパイル エラーを起こすことが予想されます。

通常、アクセスされる配列要素が存在することを確認する必要があります。

奇妙なのは、TypeScript が
<code class="language-typescript">const arr: string[] = [];
const element = arr[0];
if (typeof element === 'string') console.log(element);</code>
として推論する要素の型をチェックしていることです。

string型アサーションの使用を考えるかもしれません:

しかし、完璧なコードを書くことを自分自身に課すべきではないため、これは理想的ではありません。
<code class="language-typescript">const element: string | undefined = arr[0];</code>

この問題を解決するには、次の 2 つのアプローチを取ることができます:

書き込み型保護機能
  1. コンパイラ オプションを使用します
  2. noUncheckedIndexedAccess
  3. どちらの方法もうまく機能しますが、
を使用する場合は両方を行う必要はありません。

Array.prototype.at()

<code class="language-typescript">const arr: string[] = [];
const element = arr.at(0); // string | undefined
console.log(element);</code>
の別の値に

を挿入しようとすると、コンパイル エラーが発生します: element

<code class="language-javascript">const element = arr[1];</code>

結論

Array.prototype.at() を使用して、よりクリーンなコードを作成し、余分な関数や構成の追加を避けます。

Array.prototype.at() Mozilla Developer Network の説明: リンク (実際のリンクに置き換えてください)

以上がArray[index] に対する Array.at() の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。