#javascript #json
#javascript #json
Вопрос:
[
{"id":"1001","token":"12345678987654","name":"Name 1"},
{"id":"1010","token":"876543245643","name":"Name 2"}
]
Я могу напечатать числа, которые существуют в JSON, следующим образом.
for (let i = 0; i < users.length; i ) {
// same codes
}
Однако, если в JSON нет числа 1234, я хочу, чтобы появился элемент DIV. Элемент DIV обычно не отображается
var number = 1234;
for (let i = 0; i < users.length; i ) {
if (users[i].id !== number) {
document.getElementById('addBox').style.display = 'block';
}
}
Если в JSON нет 1234, я хочу, чтобы он появился. Это не обязательно должно отображаться для тех, кто существует.
Комментарии:
1. итак .. в чем проблема?
2.
users[i].id
может не быть целым числом. Так что попробуйтеif ( users[i].id !== 1234)
.3. Привет @Manav , число
1234
не существует в JSON. Итак, я хочу, чтобы появился элемент DIV. Но в моем коде это не отображается для1234
. Элемент DIV отображается для других чисел. Если вы хотите, вы можете увидеть консоль в JSFiddle.4. @Manav Итак, отображайте элемент DIV только в том случае, если Number
1234
недоступен в JSON5. Вам необходимо проверить всех пользователей, прежде чем принимать окончательное решение, существует ли конкретный или нет
Ответ №1:
Вы используете strict not equal ( !==
) между строкой и числом:
const id = "1001";
console.log(id !== 1001);
console.log(id !== "1001");
Вышеизложенное должно продемонстрировать вам проблему.
Ответ №2:
Используйте Array.prototype.some():
var users1=[
{"id":"1001","token":"12345678987654","name":"Name 1"},
{"id":"1010","token":"876543245643","name":"Name 2"}
];
var users2=[
{"id":"1001","token":"12345678987654","name":"Name 1"},
{"id":"1010","token":"876543245643","name":"Name 2"},
{"id":"1234","token":"4876543245643","name":"Name 4"}
];
var number=1234;
console.log("number in users1 (number to string): "
users1.some(user=>user.id=="" number)
);
console.log("number in users2 (number to string): "
users2.some(user=>user.id=="" number)
);
console.log("number in users1 (string to number): "
users1.some(user=> user.id==number)
);
console.log("number in users2 (string to number): "
users2.some(user=> user.id==number)
);
Итак, для вашего случая:
var number = 1234;
if(!users.some(user=>user.id=="" number))
document.getElementById('addBox').style.display = 'block';
или:
var number = 1234;
if(!users.some(user=> user.id==number))
document.getElementById('addBox').style.display = 'block';
Комментарии:
1. Привет, большое вам спасибо за ваш интерес, но мой вопрос заключается в том, что номер 1234 не существует
users1
. Затем он должен указывать наaddBox
элемент. Итак, если в JSON нет 1234, должно появиться «addBox».2. @Emre7, моя ошибка, исправлено: добавлено
!
(нет). Дайте мне знать, работает ли это для вас сейчас. Если это так: выберите и проголосуйте ?!? Заранее благодарю вас!3. Я пытался, но не могу. Мне нужно минимум 15 баллов, а у меня 13 баллов.
4. @Emre7, как я уже сказал … 🙂 Надеюсь, ты вспомнишь меня, когда доберешься туда — очень скоро!