фильтровать объект json и результаты цикла grep - PullRequest
0 голосов
/ 20 мая 2018

У меня есть следующий код, но я знаю, что должен быть более эффективный способ достичь моих конечных результатов.Мне нужна строка через запятую, но когда я пытаюсь использовать .toString, я знаю, что я не использую ее в нужном месте.Я включил код, который сейчас использую

function load_data() {
    var response = [
        {"email": "a@123.com","pmid": ["a22222", "a444444", "a555555", "a7777777", "a8888888"]},
        {"email": "b@123.com", "pmid": ["b22222", "b444444", "b555555", "b7777777", "b8888888"]},
        {"email": "c@123.com", "pmid": ["c22222", "c444444", "c555555", "c7777777", "c8888888"]},
        {"email": "d@123.com", "pmid": ["d22222", "d444444", "d555555", "d7777777", "d8888888"]}
    ];

    var singleEmail = $.grep(response, function (element, index) {
        return element.email == 'a@123.com';
    });
    var obj = singleEmail[0];
    var pmid = obj.pmid;
    var pmidList = ''

    for (var i = 0; i < pmid.length; i++) {
        pmidList += pmid[i] + ',';
    }

    alert(pmidList);
}

Также использование grep более эффективно, чем просто зацикливание?

Спасибо

1 Ответ

0 голосов
/ 20 мая 2018

Использование jQuery никогда не бывает более эффективным.У JS есть много полезных методов в эти дни.Тем не менее, проверьте MDN для поддержки браузера.

Найдите правильный элемент:

// modern
const element = response.find((el) => el.email == 'a@123.com');
// compatible
var element = response.find(function(el) {
  return el.email == 'a@123.com';
});

Stringify для массива:

const pmidList = element.pmid.join(',');
// or var for compatibility

pmidList не будет завершать , как ваш код, но я предполагаю, что это хорошо.

Рекомендации и поддержка:

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