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

並べ替えられた数値の配列に数値を挿入するJavaScript


ソートされた数値の配列を最初の引数として受け取り、単一の数値を2番目の引数として受け取るJavaScript関数を作成する必要があります。

関数は、要素の並べ替えを歪めることなく、2番目の引数として指定された数値を配列にプッシュする必要があります。

別のアレイを作成せずにこれを行う必要があります。

const arr = [6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 22];
const num = 15;
const findIndex = (arr, val) => {
   let low = 0, high = arr.length;
   while (low < high) {
      let mid = (low + high) >>> 1;
      if (arr[mid] < val) {
         low = mid + 1;
      }else {
         high = mid
      }
   };
   return low;
};
const insertAt = (arr = [], num) => {
   const position = findIndex(arr, num);
   for(let i = position; typeof arr[i] !== 'undefined'; i++){
      // swapping without using third variable num += arr[i];
      arr[i] = num - arr[i];
      num -= arr[i];
   };
   arr.push(num);
};
insertAt(arr, num);
console.log(arr);

出力

これにより、次の出力が生成されます-

[
   6, 7, 8, 9, 12,
   14, 15, 16, 17, 19,
   20, 22
]

  1. JavaScriptで配列を電話番号文字列に変換する

    問題 最初で唯一の引数として、正確に10個の正の整数arrの配列を受け取るJavaScript関数を作成する必要があります。 次に、関数は電話番号文字列の形式の文字列を返す必要があります。 たとえば、関数への入力が-の場合 入力 const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; 出力 const output = '(987) 654-3210'; 例 以下はコードです- const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; const createNumber = (arr = []) =

  2. JavaScriptで配列を昇順に変換する

    シーケンスの増加 (0 <=i <=n-2)のようにすべてのi(0ベース)に対してarr [i] <=arr [i + 1]が成り立つ場合、配列を増加として定義します。 問題 最初で唯一の引数として、整数の配列arrを受け取るJavaScript関数を作成する必要があります。 この関数は、配列の最大1つの要素を変更することで、この配列を増加する配列に変換できるかどうかを判断する必要があります。 そうすることができれば、trueを返し、そうでない場合はfalseを返す必要があります。 たとえば、関数への入力が 入力 const arr = [8, 3, 3, 7, 9]; 出力