JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのオブジェクトエントリから部分文字列(サブストリング)を抽出・表示する方法

はい、可能です。Object.fromEntries()substr()を組み合わせることで、オブジェクトのキー(プロパティ名)から部分文字列を抽出し、新しいオブジェクトとして表示できます。

substr()を使用する際には、第1引数に「部分文字列の取得を開始するインデックス」、第2引数に「切り出す文字数(長さ)」を指定します。これにより、キー名から不要な部分を取り除いた文字列を作成できます。

処理の流れ

以下の手順で処理を行います。

  1. Object.entries()でオブジェクトを[キー, 値]のペア配列に変換する
  2. map()で各キーにsubstr()を適用し、必要な部分だけを切り出す
  3. Object.fromEntries()で加工済みのペア配列を再びオブジェクトに戻す

サンプルコード

const originalString = {
    "John 21 2010" :1010,
    "John 24 2012" :1011,
    "John 22 2014" :1012,
    "John 22 2016" :1013,
}
const result = Object.fromEntries(Object.entries(originalString).
map(([k, objectValue])=>
[k.substr(0, k.length-5), objectValue]));
console.log(result)

このコードでは、各キーの末尾5文字(スペース+西暦4桁分)を取り除き、「John 21」「John 24」のような部分文字列を新しいキーとしています。値はそのまま維持されます。

プログラムの実行方法

上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。

node fileName.js.

ここでは、ファイル名をdemo41.jsとして保存しています。

実行結果

このプログラムを実行すると、以下のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo41.js
{ 'John 21': 1010, 'John 24': 1011, 'John 22': 1013 }

このように、キーから末尾の年号部分が除去され、値と対応付けられた新しいオブジェクトが出力されました。

補足:substr()の代替としてslice()を推奨

substr()は現在、ECMAScriptの仕様上レガシーなメソッド(Annex B)とされており、非推奨扱いになっています。今後のコードでは、より現代的なslice()を使うのがおすすめです。slice()は負のインデックスもサポートしており、次のように書き換えられます。

const result = Object.fromEntries(
  Object.entries(originalString).map(([k, v]) => [k.slice(0, -5), v])
);

k.slice(0, -5)は「末尾から5文字を除いた部分」を取得するため、同じ結果をより簡潔に実現できます。

  1. JavaScript関数からオブジェクトを返す方法をわかりやすく解説

    JavaScriptの関数からオブジェクトを返すには、return文を使用します。オブジェクト内のプロパティやメソッドにアクセスする際は、thisキーワードを活用すると便利です。この記事では、実際のコード例を使いながら、JavaScript関数からオブジェクトを返す基本的な方法を解説します。基本的な考え方JavaScriptでは、オブジェクトの中にメソッド(関数)を定義できます。そのメソッド内でreturn文を使えば、処理結果や値を呼び出し元に返すことができます。また、thisキーワードを参照することで、同じオブジェクト内の他のプロパティにアクセス可能です。サンプルコード以下のコードでは、従業

  2. JavaScriptオブジェクトからプロパティを削除する方法|delete演算子の使い方

    JavaScriptのオブジェクトからプロパティを削除するには、delete演算子を使用します。delete演算子を使うと、指定したプロパティがオブジェクトから完全に取り除かれます。なお、単にプロパティに undefined を代入した場合と異なり、delete演算子を使えばプロパティそのものをオブジェクトから削除できる点に注意してください。サンプルコード<!DOCTYPE html> <html> <body> <h1>JavaScript Object Properties Example</h1> <h2 class=&q