сравнить массив и объект, чтобы увидеть, существует ли элемент - PullRequest
1 голос
/ 05 августа 2020

У меня есть следующее: Массив

const myArray = ['john', 'frank', 'paul'];

тогда у меня есть массив объектов

const myObjectArray = [
    {name: 'nery', age: 34, present: true},
    {name: 'john', age: 15, present: false},
    etc
]

Как я могу проверить, найдено ли значение myArray в myObjectArray? Я думал о прохождении через myArray, а затем в каждой итерации зацикливания через myObjectArray, чтобы увидеть, присутствует ли он. Однако кажется, что это 2001 год.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 05 августа 2020

Array.prototype.find может найти первый элемент в предоставленном массиве, который удовлетворяет предоставленной функции тестирования.

const myArray = ["john", "frank", "paul"];

const myObjectArray = [
  { name: "nery", age: 34, present: true },
  { name: "john", age: 15, present: false },
];
res = myObjectArray.find((o) => myArray.includes(o.name));
console.log(res);
2 голосов
/ 05 августа 2020

Вы можете использовать функции Array.prototype.some и Array.prototype.includes.

const names = ['john', 'frank', 'paul'];

const people = [
  {name: 'nery', age: 34, present: true},
  {name: 'john', age: 15, present: false},
];

const exists = people.some(({ name }) => names.includes(name));
console.log(exists);
1 голос
/ 05 августа 2020

, если вы хотите проверить, находится ли элемент из первого массива в имени второго массива, используйте some, чтобы вернуть boolean

const myArray = ["john", "frank", "paul"];

const myObjectArray = [
  { name: "nery", age: 34, present: true },
  { name: "john", age: 15, present: false },
];
res = myObjectArray.some((o) => myArray.includes(o.name));
console.log(res);

Если вы хотите вернуть объект с таким же именем из первого массива, используйте filter

const myArray = ["john", "frank", "paul"];

const myObjectArray = [
  { name: "nery", age: 34, present: true },
  { name: "john", age: 15, present: false },
];
res = myObjectArray.filter((o) => myArray.includes(o.name));
console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...