8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScript 配列から指定した値の近似値を取得

Last updated at Posted at 2015-06-15

速度とか気にせず、シンプルにわかる安く取得する方法としてメモしておきます。
海外のどこかのサイトに書いてあったコードです

closest.js

function getClosestNum(num, ar){
   //近似値を保持しておく変数
   var closest;
   //配列かどうか、要素があるか判定
   if(Object.prototype.toString.call(ar) ==='[object Array]' && ar.length>0){
     //まず配列の最初の要素を近似値として保持する
     closest = ar[0];
     //配列の要素を順次比較していく
     for(var i=0;i<ar.length;i++){ 
        //この時点での近似値と、指定値の差異を絶対値で保持しておく
        var closestDiff = Math.abs(num - closest);
        //読み込んだ値と比較し、差異を絶対値で保持しておく
        var currentDiff = Math.abs(num - ar[i]);
        //新しく比較した値のほうが近かったら、近似値として保持しておく
        if(currentDiff < closestDiff){
            closest = ar[i];
        }
      }
     //ループが終わったら、近似値を返す
      return closest;
    }
 //配列じゃなかったらfalse
 return false;
}
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?