#javascript
Вопрос:
Недавно я преобразовывал запутанный код js в python, я не силен в js, когда я увидел это, я понятия не имел, что делать, в любом случае, есть ли способ преобразовать это в простой код js
return 12 === selector ? (data = data >> 4, outstring = outstring String.fromCharCode(data)) : 18 === selector amp;amp; (data = data >> 2, outstring = outstring String.fromCharCode((65280 amp; data) >> 8), outstring = outstring String.fromCharCode(255 amp; data)), outstring;
Комментарии:
1. Вам нужно понимать основы, такие как оператор Элвиса
2. @Selvin есть ли что-нибудь, чтобы упростить это ?
3. Чего вы ожидаете от упрощенного вывода? Как вы думаете, что означает упрощение?
4. я имел в виду, что это строка за строкой с возвращаемой строкой вывода; в одной строке, а не все в одной строке
5. Вы можете поместить его в несколько строк, добавив их самостоятельно. Почему вам нужна наша помощь? Чего ты на самом деле хочешь?
Ответ №1:
Вот несколько упрощенная версия вашего кода:
if (selector === 12) {
data = data >> 4; // or data = Math.floor(data / 16), which is do right shift operation with data by 4 bits; 16 means 2 to the power of 4
outstring = String.fromCharCode(data); // append char value of data
return outstring;
} else if (selector === 18) {
data = data >> 2;
outstring = outstring String.fromCharCode((65280 amp; data) >> 8); // turn higher 8 of 16 bits to a character and append
outstring = outstring String.fromCharCode(255 amp; data); // turn lower 8 of 16 bits to a character and append
}
return outstring;
Если вы совершенно новичок в JS, вы, вероятно, найдете ссылки
String.fromCharCode() и сдвиг вправо (>>>)>> полезными