lodash фильтрация вложенных json

Я использовал этот набор кода для поиска длины файла.

//opens a file with a file descriptor
FILE * i_file;
i_file = fopen(source, "r");

//gets a long from the file descriptor for fstat
long f_d = fileno(i_file);
struct stat buffer;
fstat(f_d, &buffer);

//stores file size
long file_length = buffer.st_size;
fclose(i_file);
1
задан Octo 18 March 2019 в 16:33
поделиться

3 ответа

Вы можете попробовать что-то вроде этого:

app.get('/v1/projcontacts/:id', function(req, res) {
  var id = req.params.id;
  var projContacts = contacts.filter(
    contact => contact.projects.map(
      projects => projects.projId === id
    ).includes(true)
  )
  res.json(projContacts);
})

0
ответ дан Jose A. Ayllón 18 March 2019 в 16:33
поделиться

Вы можете попробовать что-то вроде этого:

<час>

const data = {
    "contacts":
    [
        {
            "contactId": "00001",
            "firstName": "test",
            "lastName": "test",
            "email": "test@test.com",
            "phone": "0207 0000000",
            "role": "Surveyor",
            "customer": "00001",
            "projects": [{"projId": "00002"}]
        },
        {
            "contactId": "00002",
            "firstName": "test1",
            "lastName": "test1",
            "email": "test@test.com",
            "phone": "0207 1111111",
            "role": "Manager",
            "customer": "00001",
            "projects": [{"projId": "00002"}, {"projId": "00003"}]
        }
    ]
};

const projId = "00003";

// E.g Filter by project ID "00003"
const results = data.contacts.filter(x => x.projects.some(x => x.projId === projId));

console.log(JSON.stringify(results, null, 4));

0
ответ дан Kunal Mukherjee 18 March 2019 в 16:33
поделиться

Лодаш может быть излишним для этого. Вы можете использовать .some() , что дает дополнительное преимущество - выходить рано, когда находит первое совпадение:

app.get('/v1/projcontacts/:id', function(req, res) {
    var id = req.params.id;
    var projContacts = contactData.contacts.filter(contact => {
        return contact.projects.some(project => project.projId === id);
    });
    res.json(projContacts);
})
0
ответ дан Wex 18 March 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: