Я заполняю контейнер с разными символами, используя шрифт значка. Я хочу знать, если есть лучший способ перебора шестнадцатеричных значений, чем создать пользовательский массив и сделать это следующим образом:Более подходящий способ перебрать шестнадцатеричные значения
var hexPlaceValue1=0, hexPlaceValue2=0;
var hexArray = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];
for(var i=0;i through something;i++){
if(hexPlaceValue1 == 15) {
var $glyph = $('<div class="glyph" data-glyph-index="' + i + '">' + String('00' + hexArray[hexPlaceValue2] + hexArray[hexPlaceValue1]).slice(-3) + ';</div>');
hexPlaceValue1 = 0;
hexPlaceValue2++;
} else {
var $glyph = $('<div class="glyph" data-glyph-index="' + i + '">' + String('00' + hexArray[hexPlaceValue2] + hexArray[hexPlaceValue1]).slice(-3) + ';</div>');
hexPlaceValue1++;
}
}
Очевидно, что это может привести к проблемам, если введены более иконки (предоставляются, его должно быть много.) Я просто хочу знать, есть ли более эффективный способ сделать это.
Можете ли вы объяснить этот синтаксис: '(0ex000 | я)' – smilebomb
@jefffabiny Все, что предшествует '0x', обозначает [шестнадцатеричное число] (http://en.wikipedia.org/wiki/Hexadecimal). '|' является оператором [побитовое ИЛИ] (http://en.wikipedia.org/wiki/Bitwise_operation#OR). В основном '(0xe000 | i) .toString (16)' примет 'i', преобразует его в шестнадцатеричный, 0-pad его до 3 символов и добавляет' e'. То же, что и ваш цикл. Надеюсь, это поможет. – Matt