JSON извлекал данные, возвращаемые слишком много раз - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть JSON со следующей формой для ~ 50 _source записей:

{
    "hits": [
        {
            "_source": {
                "name": "henry",
                "jobs": ["judge", "lawyer"]
            }
        },
        {
            "_source": {
                "name": "henry",
                "jobs": ["dev", "waitress"]
            }
        }
        // ...
    ]
}

Я хочу извлечь только первый элемент в узле jobs, т.е. judge, dev, ... и попробовал следующее:

for (i in json.hits) 
{ 
    const jobExtract = json.hits[i]._source;        

    for (i=0; i<jobExtract.jobs.length; i++)
    { 
        const firstItem = jobExtract.jobs[0];
        console.log(firstItem);
    }
}

Я могу извлечь первый элемент, но он появляется несколько раз:

judge
judge
judge
dev
dev

Где я ошибся?

1 Ответ

0 голосов
/ 30 ноября 2018

Первое решение, которое всплывает у меня в голове, - это использование Снижение

Учитывая:

const hits =  [
    {
   "_source": {
                "name": "henry",
                 "jobs" : [ "judge","lawyer"] },
     },
     {
   "_source": {
                "name": "henry",
                 "jobs" : [ "dev","waitress"] },
     }, ]

const result = hits.reduce((acc, item) => acc = [item._source.jobs[0], ...acc], []) 

console.log(result) // ["dev", "judge"]

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...