配列内の値を見つけるためのJavascriptオールインワン関数

ジョーマン・フランツィーニ

私が試したのは2日ですが、運がありません!

私の初心者の質問は

私はコンテナを持っています

var container = [1.29,1.30,1.20,1.21,1.95,4.19,1.53,4.11,1.06,84.64,0,23.1,1,22,1.22];

したがって、このコンテナの内部を調べて値をカウントするための高速なソリューションを見つける必要があります。2つのルールのみを尊重する必要があります。カウントする必要のある値が0の場合、コンテナ内に0がいくつあるかを正確に知る必要があります。値は0ではありません。この値以上のすべての値をカウントする必要があります

したがって、これを2つの方法で試しましたが、どちらの場合も、0の値に対して間違った結果が得られました。

function count(arr, value) {
   if (arr.length === 1) {
      return arr[0] === value ? 1 : 0;
   } else {
     if (value === 0) {
       return (arr.shift() === value ? 1 : 0) + count(arr, value);
     } else {
       return (arr.shift() >= value ? 1 : 0) + count(arr, value);
     }
   }
}

console.log(count(container, 2));
console.log(count(container, 0));

私の期待は、2のすべての値> = 2とすべての値=== 0を見つけることですが、2の場合は正しい結果が得られ、0の場合は間違った結果が得られました。

同じ機能のこの2つのバリエーションと同じ

function isBigEnough(value) {
  return function(element, index, array) {
    if (value === 0) {
      return (element = value);
    } else {
      return (element >= value);
    }
  }
}

function isBigEnough(value) {
  if (value === 0) {
    return function(element, index, array) {
      return (element = value);
    }
  } else {
    return function(element, index, array) {
      return (element >= value);
    }
  }
}

0の値に対して0の結果を取得するたびに、コンテナーに1があります。

何か案が?そして、より速いアプローチは何ですか?

どうもありがとうございました。良い一日を。

ミハイアレクサンドル-イオナッツ

filterよりスマートなソリューションのためにメソッドを使用できます

filterメソッドは、配列内のすべてのアイテムに提供されたコールバック関数を適用することにより、新しい配列を作成します

を使用している場合はES6arrow関数を試してください

var container = [1.29,1.30,1.20,1.21,1.95,4.19,1.53,4.11,1.06,84.64,0,23.1,1,22,1.22];
function count(arr, value) {
   if(value==0)
    return arr.filter(a=>a==0).length;
   return arr.filter(a=>a>=value).length;  
}
console.log(count(container, 2));
console.log(count(container, 0));

関数の何が問題になっていますか?

問題は、shiftメソッドが元の配列を変更することです。これが0、値を0指定して関数を呼び出したとき結果が得られる理由です。以下のスニペットをご覧ください。

var container = [1.29,1.30,1.20,1.21,1.95,4.19,1.53,4.11,1.06,84.64,0,23.1,1,22,1.22];
function count(arr, value) {
   if (arr.length === 1) {
      return arr[0] === value ? 1 : 0;
   } else {
     if (value === 0) {
       return (arr.shift() === value ? 1 : 0) + count(arr, value);
     } else {
       return (arr.shift() >= value ? 1 : 0) + count(arr, value);
     }
   }
}
console.log(count(container, 2));
console.log(container);
console.log(count(container, 0));

これを解決するには、必要なたびにカウント関数を呼び出すためにコピーを使用する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列内の信号の振幅(最大値)を見つけるための関数とポインター

分類Dev

配列内のjsonオブジェクトの現在のインデックスを見つけるための関数はありますか?

分類Dev

配列内の2つの類似した数値のインデックスを見つける方法は?

分類Dev

JSON配列内の要素を見つけるためのインデックス

分類Dev

配列内の複数の値を見つけるための最良の方法

分類Dev

回転したソート済み配列で最小値を見つけるためのリサイクル配列ソリューション

分類Dev

R:2つのグループに観測値を割り当てるための連続変数のカットオフポイントを見つける

分類Dev

呼び出された関数で使用されたときに異なる値を与えるCの配列のサイズを見つけるためのポインターハックの理由

分類Dev

javascriptで数値の配列を降順でソートするために必要なスワップの最小数を見つける方法

分類Dev

空手-JSON応答配列内の要素の複数の出現の配列インデックスを見つけるため

分類Dev

文字列内のインデックスを見つけるための for ループ

分類Dev

関数内のポインターの配列を埋める

分類Dev

Javascript-オブジェクトから配列に値を抽出するためのワンライナー

分類Dev

ファイル内のテキストをトリミングするためのシンプルなワンライナーを見つけるPowershell

分類Dev

NodeJS:オブジェクトの配列内の最小値と最大値を見つけるためのArray.reduce

分類Dev

Java-配列内の最小の2つの数値を見つけるための再帰

分類Dev

指定された範囲の合計を持つ配列内の連続サブシーケンスの数を見つける再帰関数

分類Dev

配列内の最大n値のインデックスを見つける方法

分類Dev

マングースモデル内の配列内のオブジェクトを見つける方法は?

分類Dev

条件で配列内の数値のインデックス位置を見つける方法は?

分類Dev

配列内の値の重複の数を見つけるためのより高速で簡単な方法

分類Dev

Javascript-配列内の特定のインデックスを見つける

分類Dev

配列のインデックスを見つけるためのunordered_map

分類Dev

Pythonで配列内のエントリを見つけるためにインデックスを使用する際のエラー

分類Dev

文字列内の複数の値を見つけて配列に保存するJavaScript?

分類Dev

cの未知の型配列で最大要素を見つける方法(関数へのポインターを使用)

分類Dev

配列内の数値を見つけるためのベストプラクティスは何ですか?

分類Dev

配列の最大値へのポインタを見つける

分類Dev

配列のパーセンテージを取得し、関数find()で場所を見つけるための問題

Related 関連記事

  1. 1

    配列内の信号の振幅(最大値)を見つけるための関数とポインター

  2. 2

    配列内のjsonオブジェクトの現在のインデックスを見つけるための関数はありますか?

  3. 3

    配列内の2つの類似した数値のインデックスを見つける方法は?

  4. 4

    JSON配列内の要素を見つけるためのインデックス

  5. 5

    配列内の複数の値を見つけるための最良の方法

  6. 6

    回転したソート済み配列で最小値を見つけるためのリサイクル配列ソリューション

  7. 7

    R:2つのグループに観測値を割り当てるための連続変数のカットオフポイントを見つける

  8. 8

    呼び出された関数で使用されたときに異なる値を与えるCの配列のサイズを見つけるためのポインターハックの理由

  9. 9

    javascriptで数値の配列を降順でソートするために必要なスワップの最小数を見つける方法

  10. 10

    空手-JSON応答配列内の要素の複数の出現の配列インデックスを見つけるため

  11. 11

    文字列内のインデックスを見つけるための for ループ

  12. 12

    関数内のポインターの配列を埋める

  13. 13

    Javascript-オブジェクトから配列に値を抽出するためのワンライナー

  14. 14

    ファイル内のテキストをトリミングするためのシンプルなワンライナーを見つけるPowershell

  15. 15

    NodeJS:オブジェクトの配列内の最小値と最大値を見つけるためのArray.reduce

  16. 16

    Java-配列内の最小の2つの数値を見つけるための再帰

  17. 17

    指定された範囲の合計を持つ配列内の連続サブシーケンスの数を見つける再帰関数

  18. 18

    配列内の最大n値のインデックスを見つける方法

  19. 19

    マングースモデル内の配列内のオブジェクトを見つける方法は?

  20. 20

    条件で配列内の数値のインデックス位置を見つける方法は?

  21. 21

    配列内の値の重複の数を見つけるためのより高速で簡単な方法

  22. 22

    Javascript-配列内の特定のインデックスを見つける

  23. 23

    配列のインデックスを見つけるためのunordered_map

  24. 24

    Pythonで配列内のエントリを見つけるためにインデックスを使用する際のエラー

  25. 25

    文字列内の複数の値を見つけて配列に保存するJavaScript?

  26. 26

    cの未知の型配列で最大要素を見つける方法(関数へのポインターを使用)

  27. 27

    配列内の数値を見つけるためのベストプラクティスは何ですか?

  28. 28

    配列の最大値へのポインタを見つける

  29. 29

    配列のパーセンテージを取得し、関数find()で場所を見つけるための問題

ホットタグ

アーカイブ