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

JavaScriptで2つのオブジェクトの違いのプロパティを取得します


たとえば、キーと値のペアが類似している2つのオブジェクトがあり、両方のオブジェクトで1つまたはキーの値が異なるとします。私たちの仕事は、2つのオブジェクトの引数を受け取り、異なる値を持つ最初のキーを返す関数を作成することです。すべてのキーの値がまったく同じである場合、-1を返す必要があります。

これがサンプルオブジェクトです-

const obj1 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 190000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const obj2 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 19000,
   job: 'Full Stack Developer',
   employedSince: 2005
}

2つのオブジェクトを取り込み、forEach()ループを使用して最初のオブジェクトを反復処理し、両方のオブジェクトの同等性をチェックします。いずれかのポイントの値が一致しない場合は、フラグを更新し、ループを終了して特定のキーを返します。 。ループ全体を反復処理すると、すべてが一致したことを意味します。その場合、-1が返されます。

このための完全なコードは-

になります

const obj1 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 190000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const obj2 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 19000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const difference = (obj1, obj2) => {
   let keyFound = false;
   Object.keys(obj1).forEach(key => {
      if(obj1[key] !== obj2[key]){
         return keyFound = key;
      }
   });
   return keyFound || -1;
};
console.log(difference(obj1, obj2));

出力

コンソールの出力は-

になります
salary

  1. Androidで2つの日付の違いを取得するにはどうすればよいですか?

    この例は、Androidで2つの日付の違いを取得する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://sche

  2. MySQLの2つのタイムスタンプの違いを秒単位で取得しますか?

    2つのタイムスタンプの差を秒単位で取得するには、MySQLの2つの組み込み関数TIME_TO_SEC()とTIMEDIFF()を使用します。構文は次のとおりです- select time_to_sec(timediff(yourCoulnName1,yourCoulnName2)) as anyVariableName from yourTableName; 上記の概念を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリ。 mysql> create table TimeToSecond −> ( −> MyT