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

JavaScriptでオブジェクトの配列から重複を削除する最良の方法は?


以下が重複するオブジェクトの配列であるとしましょう-

var studentDetails=[
   {studentId:101},
   {studentId:104},
   {studentId:106},
   {studentId:104},
   {studentId:110},
   {studentId:106},
]

次のコードのように、セットの概念を使用して重複を削除します-

var studentDetails=[
   {studentId:101},
   {studentId:104},
   {studentId:106},
   {studentId:104},
   {studentId:110},
   {studentId:106},
]
const distinctValues = new Set
const withoutDuplicate = []
for (const tempObj of studentDetails) {
   if (!distinctValues.has(tempObj.studentId)) {
      distinctValues.add(tempObj.studentId)
      withoutDuplicate.push(tempObj)
   }
}
console.log(withoutDuplicate);
>

上記のプログラムを実行するには、次のコマンドを使用する必要があります-

node fileName.js.

出力

ここで、私のファイル名はdemo158.jsです。これにより、次の出力が生成されます-

PS C:\Users\Amit\JavaScript-code> node demo158.js
[
   { studentId: 101 },
   { studentId: 104 },
   { studentId: 106 },
   { studentId: 110 }
]

  1. JavaScriptの配列の配列から最小の配列を取得します

    このような配列のネストされた配列があるとします- const arr = [    ["LEFT", "RIGHT", "RIGHT", "BOTTOM", "TOP"],    ["RIGHT", "LEFT", "TOP"],    ["TOP", "LEFT"] ]; そのような配列を1つ取り込むJavaScript関数を作成する

  2. 配列から数値を削除し、残りの数値をJavaScriptにシフトします

    最初の引数として数値の配列を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 関数は、2番目の引数で指定された数が配列に存在する場合、それを削除し、すべての要素を右に1つ左にシフトする必要があります。唯一の条件は、slice()、spliceなどのArrayメソッドを使用できないことです。 配列に番号のインスタンスが複数存在する場合は、最初のインスタンスを削除する必要があります。 例- 入力配列が-の場合 const arr = [3, 5, 6, 3, 7, 8, 8, 6]; const num = 7; 次に、配列は-になります。 con