Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptを使用したバイナリ表現の1の数による並べ替え


問題

数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、それらの数値のバイナリ表現に存在する1の数の減少に従って数値を並べ替え、新しい配列を返す必要があります。

以下はコードです-

const arr = [5, 78, 11, 128, 124, 68, 6];
const countOnes = (str = '') => {
   let count = 0;
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      if(el === '1'){
         count++;
      };
   };
   return count;
};
const sortByHighBit = (arr = []) => {
   arr.sort((a, b) => countOnes(b) - countOnes(a));
   return arr;
};
console.log(sortByHighBit(arr));

出力

[ 5, 78, 11, 128, 124, 68, 6 ]

  1. JavaScriptを使用して、小数の隣接する2進ビットを交換して別の小数を生成する

    問題 数値を取り込むJavaScript関数を作成する必要があります。 この関数は、数値に相当する2進数を反復処理し、隣接するビットを交換して新しい2進数を作成する必要があります。そして最後に、関数は新しいバイナリに相当する10進数を返す必要があります。 例 以下はコードです- const num = 13; const swapBits = (num) => {    let arr = num.toString(2).split('');    if(arr.length % 2){      

  2. JavaScriptを使用して10進値が偶数のバイナリ文字列を並べ替える

    問題 長さ3のバイナリ文字列をすべてスペースで区切った文字列を取り込むJavaScript関数を作成する必要があります。 この関数は、数値を昇順で並べ替える必要がありますが、偶数を並べ替え、すべての奇数をそのまま残します。 例 以下はコードです- const str = '101 111 100 001 010'; const sortEvenIncreasing = (str = '') => {    const sorter = (a, b) => {       const findIn