Я работаю над расширением Chrome и ударился о стену.
function isInQueue(id) {
chrome.extension.sendRequest({getQueueItems: 1}, function(response) {
var items = response.items;
if (items) {
for (var i = 0; i < items.length; i++) {
if ((items[i].id == id) == true) return true;
}
return false;
} else { return false; }
});
}
Запрос возвращает «items», представляющий собой массив объектов. Я пытаюсь увидеть, существует ли другой элемент вне очереди внутри очереди. Например, снаружи есть элемент с идентификатором, равным '198677'. Я знаю, что у меня уже есть точная копия этого же элемента в моей очереди с точно таким же идентификатором, '198677', однако, когда я проверяю оба на равенство (items[i].id == id) == true
, он возвращает false. Я проверил typeof оба, и они оба строки. Я попытался использовать ===
, и это не сработало. Я попытался добавить ноль к каждому из них, чтобы превратить их в целые числа, и это заставило функцию возвращать истину, когда она действительно была истинной, однако, когда я проверял на истину if (isInQueue(id) == true)
, условное возвращение ложно.
Это все очень смущает и расстраивает меня. Они обе строки, почему не работает?
Помощь очень ценится.