Добро дамам и господам, i have массив
var results = {
'a': '1',
'b': '2'};
и мне нужно пробежаться по массиву так чтобы если у хоть одного ключа значение == 1 то кое-что сделать в jquery, также если хоть у одного ключа значение == 2 сделать кое-что в jquery = так на все цифирки от 1 до 5
То что у меня получилось:
for (var key in results) {
if (results[key] == '1') {
$('.avatar > img').attr('src', '/images/avatars/chief_1.svg')
break
}
if (results[key] == '2') {
$('.avatar > img').attr('src', '/images/avatars/chief_2.svg')
break
}
if (results[key] == '3') {
$('.avatar > img').attr('src', '/images/avatars/chief_3.svg')
break
}
if (results[key] == '4') {
$('.avatar > img').attr('src', '/images/avatars/chief_4.svg')
break
}
if (results[key] == '5') {
$('.avatar > img').attr('src', '/images/avatars/chief_5.svg')
break
}
}
При break
цикл заканчивает при первом же итерации, а
при continue
изменение картинки подсчитывается только при второй итерации
Можно создать булевый массив, ключи которого — числа от 1 до 5, а значения — true
или false
, в зависимости от того, встречался ли уже такой ключ.
let results = {
'a': '1',
'b': '2'
};
let isActionPerfomed = [];
for (let i = 1; i <= 5; ++i) {
isActionPerfomed[i] = false;
}
for (let key in results) {
let value = results[key];
for (let i = 1; i <= 5; ++i) {
if (value == i && !isActionPerfomed[i]) {
console.log(`выполняем действие ${i}`);
$('.avatar > img').attr('src', `/images/avatars/chief_${i}.svg`);
isActionPerfomed[i] = true;
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как сделать чтобы список был сразу справа от заголовка , а не под ним ?
Какими средствами лучше всего сделать рамку, скажем к форме комментариев, как на присутствующем здесь изображении? Я понимаю что ее можно...
Вношу изменения в css-файле, который подключен и благополучно работал, но почему-то сейчас изменения в нем не сохраняются, php-storm все сохранил,...