Простой способ проверить, существует ли значение в массиве объектов? - PullRequest
0 голосов
/ 13 января 2020

Как проверить значение, которое существует во вложенном объекте?

Допустим, у меня есть такие данные:

const data = [
  {
    title: 'New Posts',
    data: [
      {
        username: 'firstnamefromnewpost',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets',
      },
      {
        username: 'another name',
        content:
          'lost content goals lets start with some',
      },
    ],
  },
  {
    title: 'Different Posts',
    data: [
      {
        username: 'usernametag',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets start',
      },
    ],
  },
];

Я хочу быть в состоянии найти, если firstnamefromnewpost существует в этом массиве. Есть ли простой способ сделать это?

1 Ответ

2 голосов
/ 13 января 2020

Простой способ?

Возможно, вы можете использовать includes() для строкового массива:

const data = [
  {
    title: 'New Posts',
    data: [
      {
        username: 'firstnamefromnewpost',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets',
      },
      {
        username: 'another name',
        content:
          'lost content goals lets start with some',
      },
    ],
  },
  {
    title: 'Different Posts',
    data: [
      {
        username: 'usernametag',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets start',
      },
    ],
  },
];

var isExists = JSON.stringify(data).includes('firstnamefromnewpost');
console.log(isExists);

ИЛИ: Если вы хотите проверить свойство username во вложенном массиве data :

const data = [
  {
    title: 'New Posts',
    data: [
      {
        username: 'firstnamefromnewpost',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets',
      },
      {
        username: 'another name',
        content:
          'lost content goals lets start with some',
      },
    ],
  },
  {
    title: 'Different Posts',
    data: [
      {
        username: 'usernametag',
        content: 'this is some content that will go on forever and ever',
      },
      {
        username: 'name',
        content:
          'lost content goals lets start',
      },
    ],
  },
];

function isExists(data, userName){
  for(const i of data){
    if(i.data.map(n => n.username).includes(userName)) return true
  }
  return false;
}
console.log(isExists(data, 'firstnamefromnewpost'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...