Как я могу упростить код javascript oneliner, подобный этому

#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()
и сдвиг вправо (>>>)>> полезными