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

JavaScriptのオブジェクトを含む別の配列に基づいて、オブジェクトを含む配列をフィルタリングします


次のようなオブジェクトの配列が2つあるとします-

const arr1 = [{id:'1',name:'A'},{id:'2',name:'B'},{id:'3',name:'C'},{id:'4',name:'D'}];
const arr2 = [{id:'1',name:'A',state:'healthy'},{id:'3',name:'C',state:'healthy'}];

このような2つの配列を受け取るJavaScript関数を作成する必要があります。この関数は、同じnameプロパティを持つ2番目の配列(この場合はarr2)に含まれていないnameプロパティを持つオブジェクトのみを含む最初の配列(この場合はarr1)の新しいフィルター処理されたバージョンを返す必要があります。

>

したがって、この場合の出力は、-

のようになります。
const output = [{id:'2',name:'B'},{id:'4',name:'D'}];

このためのコードは-

になります
const arr1 = [{id:'1',name:'A'},{id:'2',name:'B'},{id:'3',name:'C'},{id:'4',name:'D'}];
const arr2 = [{id:'1',name:'A',state:'healthy'},{id:'3',name:'C',state:'healthy'}];
const filterByReference = (arr1, arr2) => {
   let res = [];
   res = arr1.filter(el => {
      return !arr2.find(element => {
         return element.id === el.id;
      });
   });
   return res;
}
console.log(filterByReference(arr1, arr2));

出力

そして、コンソールの出力は-

になります
[ { id: '2', name: 'B' }, { id: '4', name: 'D' } ]

  1. JavaScriptでオブジェクトを含む配列の配列をループするにはどうすればよいですか?

    以下は、JavaScriptのオブジェクトを含む配列の配列をループするコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>

  2. JavaScriptでツリー化するオブジェクトのフラット配列

    このようなオブジェクトの配列があるとします- const arr = [    { id: '1', name: 'name 1', parentId: null },    { id: '2', name: 'name 2', parentId: null },    { id: '2_1', name: 'name 2_1', parentId: '2' },    { id: '2_2