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

JavaScriptで2つのIPアドレスの間に存在するIPアドレスの数を数える


問題

2つのIPv4アドレスを受け取り、それらの間のアドレスの数(最初のアドレスを含み、最後のアドレスを除く)を返すJavaScript関数を作成する必要があります。

これは、それらを10進数に変換し、それらの絶対差を見つけることによって実行できます。

以下はコードです-

const ip1 = '20.0.0.10';
const ip2 = '20.0.1.0';
const countIp = (ip1, ip2) => {
   let diff = 0;
   const aIp1 = ip1.split(".");
   const aIp2 = ip2.split(".");
   if (aIp1.length !== 4 || aIp2.length !== 4) {
      return "Invalid IPs: incorrect format";
   }
   for (x = 0; x < 4; x++) {
      if (
         isNaN(aIp1[x]) || isNaN(aIp2[x])
         || aIp1[x] < 0 || aIp1[x] > 255
         || aIp2[x] < 0 || aIp2[x] > 255
      ) {
         return "Invalid IPs: incorrect values"
      }
      diff += (aIp1[x] - aIp2[x]) * (256 * (3-x));
   }
   return Math.abs(diff);
};
console.log(countIp(ip1, ip2));

出力

以下はコンソール出力です-

256

  1. JavaScriptでリテラルの2つの配列の間で欠落している数を見つける

    問題 arr1とarr2の2つの配列を受け取るJavaScript関数を作成する必要があります。 arr2は、arr1のシャッフルされた複製であり、要素が1つだけ欠落しています。 関数はその1つの要素を見つけて返す必要があります。 例 以下はコードです- const arr1 = [6, 1, 3, 6, 8, 2]; const arr2 = [3, 6, 6, 1, 2]; const findMissing = (arr1 = [], arr2 = []) => {    const obj = {};    for (let i =

  2. JavaScriptでnまでカウント中に遭遇した9のカウント数

    問題 数値nを受け取るJavaScript関数を作成する必要があります。この関数は、0からnまでカウントしながら9を使用する必要がある回数をカウントして返す必要があります。 例 以下はコードです- const num = 100; const countNine = (num = 0) => {    const countChar = (str = '', char = '') => {       return str       .split(''