Item search between two array in nodejs

javascript compare two arrays of objects for matches
find common elements in multiple arrays javascript
javascript compare two arrays for matches
javascript check if two arrays have same elements
javascript difference between two arrays of objects
check if an array contains all elements in another array in javascript
compare two arrays javascript
comparing two arrays in javascript returning differences

I have two fixes, where the first fix that is dataMedical has an attribute called safeId and I need it to look for its name in the dataSafe array, they are associated by the id attribute that is safeId.

*Remembering that dataMedical can have N item as well as dataSafe.*

dataMedical = [
    {
       _id: 5da619b36aae5e7028fc27db,
       paciente: 5de31abf4c430918a39a7490,
       seguroAfiliado: 5d65da2f008b72055d17abfb,
       fecha: '2019-10-01T03:00:00.000Z',
       motivoConsulta: 'dww',
       __v: 0
     }
 ]


dataSafe = [ { _id: 5d65da2f008b72055d17abfb,
    nombre: 'La Seguridad',
    email: 'info@laseguridad.com.ve',
    numeroPoliza: '123456',
    pais: 'fdsaafsd',
    baremo: 'afdafds',
    actoQuirurgico: 'fsdasafd',
    __v: 0 },
 { _id: 5d62c609e7179a084ef359fd,
     nombre: 'Mappfre',
     email: 'info@mappfre.com',
     numeroPoliza: '098765',
     actoQuirurgico: 'acto2',
     baremo: 'rweq',
     pais: 'usa' } ]

I need as a result:

dataMedicalResult = [
    {
       _id: 5da619b36aae5e7028fc27db,
       paciente: 5de31abf4c430918a39a7490,
       seguroAfiliado: 5d65da2f008b72055d17abfb,
       fecha: '2019-10-01T03:00:00.000Z',
       motivoConsulta: 'dww',
       nameSafe: 'La Seguridad',
       email: 'info@laseguridad.com.ve',
       numeroPoliza: '123456',
       pais: 'fdsaafsd',
       baremo: 'afdafds',
       actoQuirurgico: 'fsdasafd',
    }
]

Try all code and again and answer me this:

https://ramdajs.com/repl/?v=0.26.1#?%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%24__%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22strictMode%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22selected%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22getters%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22_id%22%3A%20%225da619b36aae5e7028fc27db%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22wasPopulated%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22activePaths%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22paths%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22_id%22%3A%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22paciente%22%3A%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22seguroAfiliado%22%3A%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22fecha%22%3A%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22motivoConsulta%22%3A%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22__v%22%3A%20%22init%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22states%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ignore%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22default%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22init%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22_id%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22paciente%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22seguroAfiliado%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22fecha%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22motivoConsulta%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22__v%22%3A%20true%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22modify%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22require%22%3A%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22stateNames%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22require%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22modify%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22init%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ignore%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22pathsToScopes%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22cachedRequired%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22session%22%3A%20null%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%24setCalled%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22emitter%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22_events%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22_eventsCount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22_maxListeners%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%24options%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22skipId%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22isNew%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22willInit%22%3A%20true%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22isNew%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%22_doc%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22_id%22%3A%20%225da619b36aae5e7028fc27db%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22paciente%22%3A%20%225de31abf4c430918a39a7490%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22seguroAfiliado%22%3A%20%225d65da2f008b72055d17abfb%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22fecha%22%3A%20%222019-10-01T03%3A00%3A00.000Z%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22motivoConsulta%22%3A%20%22dww%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22__v%22%3A%200%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22%24locals%22%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20%22%24init%22%3A%20true%0A%20%20%20%20%7D%0A%5D

Current Answer:

Code modified with values 'safes' and 'citasMedicas':

Result with POSTMAN:


Try this:

console.log(dataSafe.reduce((acc,el)=> {
  const dm = dataMedical.find(dam => dam["_id"] === el["_id"]);  
  return dm ? [...acc, Object.assign(el, dm)] : acc;
}, []))

Check if an array contains any element of another array in , @param {array} haystack the array to search. @return {boolean} true|false if haystack contains at least one item from arr. a better performance if you first find out which of these two arrays is longer and making Set out for the longest array,� The find() method executes the function once for each element present in the array: If it finds an array element where the function returns a true value, find() returns the value of that array element (and does not check the remaining values) Otherwise it returns undefined; Note: find() does not execute the function for empty arrays.


Would something like this work? it searches for the given id in both arrays and then joins the two found objects

const dataMedical = [{
  "_id": "1",
  "pacient": "Jhon",
  "safeId": "1",
  "data": "2019-10-01T03:00:00.000Z",
  "consult": "dww",
  "__v": 0
}]


const dataSafe = [{
    "_id": "1",
    "nameSafe": "La Seguridad"
  },
  {
    "_id": "2",
    "nameSafe": "Mappfre"
  }
]

function findRecord(id) {
  const medical = dataMedical.find(r => r._id === id)
  const safe = dataSafe.find(r => r._id === id)
  return {
    ...medical,
    ...safe
  }

}
const dataMedicalResult = findRecord("1")
console.log(dataMedicalResult)

How to find if two arrays contain any common item in Javascript , Method 3: Use the inbuilt ES6 function some() to iterate through each and every element of first array and to test the array. Use the inbuilt function includes() with second array to check if element exist in the first array or not. If element exist then return true else return false. Here are a few ways to remove an item from an array using JavaScript. All the method described do not mutate the original array, and instead create a new one. If you know the index of an item. Suppose you have an array, and you want to remove an item in position i. One method is to use slice():


You can use the Array find function to locate the correct dataSafe element. We will map over each element in dataMedical, and use the safeId to find the correct dataSafe. Then, we will copy over the nameSafe property to the safe.

let dataMedical = [
    {
        "_id": "1",
        "pacient": "Jhon",
        "safeId": "1",
        "data": "2019-10-01T03:00:00.000Z",
        "consult": "dww",
        "__v": 0
    }
]


let dataSafe = [
    {
        "_id": "1",
        "nameSafe": "La Seguridad"
    },
    {
        "_id": "2",
        "nameSafe": "Mappfre"
    }
]

let dataMedicalResult = dataMedical.map(dm => {
  let safe = dataSafe.find(e => e._id == dm.safeId);
  return safe
    ? {...dm, nameSafe: safe.nameSafe}
    : dm;
})

console.log(dataMedicalResult);

Array methods, Here we can see that splice returns the array of removed elements: let arr = [ "I" , "study" , "JavaScript" ] ; // from index 2 // delete 0 // then insert "complex" and " language" arr Now let's cover methods that search in an array. Note. To delete an item from an array, use the splice function, which takes an index and the number of items to delete. What it returns is an array with the extracted items, and the original array is modified such that they no longer exist there:


This could help too, I think trying to make point free results in a more complicate approach...

const mergeWithDataSafe = (merger, data) => merger(
  (item) => R.mergeRight(item, R.path([item.safeId, 0], data)),
);

const aggregate = R.useWith(mergeWithDataSafe, [
  R.flip(R.map),
  R.groupBy(R.prop('_id')),
]);


const dataMedical = [
  {
    "_id": "1",
    "pacient": "Jhon",
    "safeId": "1",
    "data": "2019-10-01T03:00:00.000Z",
    "consult": "dww",
    "__v": 0
  }
];


const dataSafe = [
  {
    "_id": "1",
    "nameSafe": "La Seguridad"
  },
  {
    "_id": "2",
    "nameSafe": "Mappfre"
  }
];

console.log(
  aggregate(dataMedical, dataSafe),
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>

Find difference between two arrays in JavaScript, In this post, we will see how to find the difference between two arrays in JavaScript. The solution should return an array containing all the elements of the first� The includes() method determines whether an array contains a specified element. This method returns true if the array contains the element, and false if not. Note: The includes() method is case sensitive.


You can use R.indexBy to convert the dataSafe array to a dictionary using _id as the key. Now you can map dataMedical and merge with the item with the same safeId from the safeDict:

const { curry, indexBy, prop, merge } = R;

const fn = curry((medical, safe) => {
  const safeDict = indexBy(prop('_id'), safe); // convert the safe array to a dictionary with _id as key
  
  return medical.map(o => merge(safeDict[o.safeId], o)); // map medical and merge with object with same _id from safeDict
});

const dataMedical = [{"_id":"1","pacient":"Jhon","safeId":"1","data":"2019-10-01T03:00:00.000Z","consult":"dww","__v":0}];
const dataSafe = [{"_id":"1","nameSafe":"La Seguridad"},{"_id":"2","nameSafe":"Mappfre"}];

const result = fn(dataMedical, dataSafe)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>

JavaScript Array Filter: Filtering Array Elements Based on a Test , Suppose you have an array of city objects where each object contains two properties: name and population . let cities = [ {name: 'Los Angeles', population:� If not used, all elements from the start to the end of array will be included in selection. Negative numbers are used to select from the end. Return value: Returns a new Array, having the selected items. Example-1:This example uses the slice() method to split the array into chunks of array. This method can be used repeatedly to split array of


Using the Array.find Method in JavaScript ← Alligator.io, TypeScript � Svelte � Node.js � RxJS � Ionic � Stencil � Flow � Redux � Testing The function and syntax of find() is very much like the Array.filter method, except it only returns a single element. When you need to find/return multiple values, reach for filter() instead. We can use find() to easily search arrays of objects, too! The jQuery each method has two parameters, an array and a callback. The callback method has two values passed to it, the current index and the item value, which is the opposite of the array and Lodash forEach methods. The callback method is executed against each item in the array. $.each(myArray, function( index, value ) {


JavaScript array: Find the difference of two arrays, var counter = 0; var differents = {}; var myArr = []; //fill the "differents" object with unique numbs. //if array element is already� The findIndex() method returns the index of the first element in the array that satisfies the provided testing function. Otherwise, it returns -1, indicating that no element passed the test.


Array.prototype.push(), The new length property of the object upon which the method was The following code creates the sports array containing two elements, then� The search will start at the specified position, or at the beginning if no start position is specified, and end the search at the end of the array. Returns -1 if the item is not found. If the item is present more than once, the indexOf method returns the position of the first occurence. Note: The first item has position 0, the second item has