AllDecay
@AllDecay
Вечно отдыхающий.

Как выполнить условие, если в массиве есть хотя бы одно верное условие?

Массив выглядит примерно так:

[{"ui_bid":"1451245124","ui_id":"124161616"}{"ui_bid":"124124124","ui_id":"123124"}{"ui_bid":"0","ui_id":"12123124"}{"ui_bid":"0","ui_id":"1231242352"}]

Следующий код вытаскивает только последний ui_bid равный нулю:

function Request() {
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            var responseBody = xhr.responseText;
            var event = JSON.parse(responseBody, function(key, value) {
                if (key == 'ui_bid')
                    return value;
                if (value != '0') {
                    xhr.open('GET', 'тут url для запроса', false);
                    xhr.send();
                    setTimeout(UpdateInventory, 60000);
                }
            })
        }};
    xhr.open('GET', 'тут тоже url для запроса', false);
    xhr.send();
}
Request();

Как переписать код, чтобы хотя бы при одном ui_bid не равном нулю в массиве, выполнялся нужный запрос?
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Я бы вот так написал, всё работает: jsfiddle.net/oay5jcna

var data = JSON.parse('[{"ui_bid":"1451245124","ui_id":"124161616"},{"ui_bid":"124124124","ui_id":"123124"},{"ui_bid":"0","ui_id":"12123124"},{"ui_bid":"0","ui_id":"1231242352"}]');

data.forEach(function (item, value) {
    var bid = +item.ui_bid;
    
    if (bid) {
        console.log(value); // Вот тут ваш запрос
    }
});


Помимо этого, я бы еще абстрагировал XHR в отдельный класс, чтобы можно было создавать нормальные экземпляры.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
var acess = array.some(function(e){
  return +e.ui_bid === 0;
}); 

//acess = true, если хоть 1 из ui_bid равен 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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