Показать сообщение отдельно
  #11 (permalink)  
Старый 10.12.2019, 10:33
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

let clients = [
  {
    name: "John",
    age: "25"
  },
  {
    name: "John",
    age: "25"
  },
  {
    name: "Tom",
    age: "30"
  },
  {
    name: "Tom",
    age: "42"
  }
]

// let sameClients = clients.reduce((acc, cur, idx) => {
//   if (clients.find(({ name, age }, i) => i !== idx && name === cur.name && age === cur.age)) {
//     if (!acc.find(({ name, age }) => name === cur.name && age === cur.age)) {
//       acc.push(cur)
//     }
//   }
//   return acc
// }, [])

// по всем ключам объекта
let sameClients = clients.reduce((acc, cur, idx) => {
  if (
    clients.find((c, i) => i !== idx && JSON.stringify(c) === JSON.stringify(cur))
    &&
    !acc.find((c) => JSON.stringify(c) === JSON.stringify(cur))
  ) {
    acc.push(cur)
  }
  return acc
}, [])

console.log(sameClients)
// for (let i = 0; i < client.length; i++) {
//   если имена и возрасты объектов равны, то
//   sameClient.push(client[i].name, client[i].age)
// }
Ответить с цитированием