ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの文字統計、変数交換、配列差分のアルゴリズム例を詳しく解説

JavaScriptの文字統計、変数交換、配列差分のアルゴリズム例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-24 09:28:161880ブラウズ

文字列内で最も頻繁に出現する文字をカウントします

原理: これは、オブジェクト obj を使用して、オブジェクトの属性名として配列要素を使用することにも似ています。存在しない場合、値は 1 に割り当てられます。存在する場合、値は 1 ずつ増加します。


var maxShowTimes = function(str){
  // 创建一个用于判重的对象
  let obj = {};
  // 判断字符串是否为空或只有一个元素
  if(str.length <= 1){
    return str.length === 0?&#39;字符串不能为空&#39;:str;
  }
  // 利用String的charAt()方法获取各个字符
  for(let i = 0; i <= str.length; i++){
    if(!obj[str.charAt(i)]){ //如果不存在
      obj[str.charAt(i)] = 1; 
    }else{ //如果存在
      obj[str.charAt(i)] += 1;
    }
  }
  // 在obj对象中寻找值最大的那个属性
  let maxChar = &#39;&#39;;
  let maxTimes = 0;
  for(var k in obj){
    if(obj[k] > maxTimes){
      maxChar = k;
      maxTimes = obj[k];
    }
  }
  return maxChar;
}

3 番目の変数を使用せずに 2 つの変数の交換値を実現します

原理: これは変数の置換であり、このアイデアは非常に賢明であり、数値の交換にのみ使用できます。


var swap = function(a,b){
  if(a === b){
    return [a,b];
  }
  b = b - a; // 此处的 b - a中的b和a的值是最初的值
  a = a + b; // a = a + b -a; 实现了将b的值赋给a
  b = a - b; // b = a - (b - a) = 2a - b 相当于 2b = 2a;实现了将a的值赋给b
  return [a,b];
}

配列の最大の差を見つけます

原理: 配列を1回走査し、最大値と最小値を見つけて、その差を返します


var getMaxProfit = function(arr){
  // 定义两个变量,分别存贮最大值和最小值
  let maxNum = arr[0];
  let minNum = arr[0];
  for(let i = 0; i < arr.length; i++){
    if(arr[i] > maxNum){
      maxNum = arr[i];
    }
    if(arr[i] < minNum){
      minNum = arr[i];
    }
  }
  return maxNum - minNum;
}

任意の長さのランダムな文字列を取得します

原則: 文字ライブラリとランダムな文字の長さ n を手動で指定し、Math.floor() メソッドと Math.random() メソッドを使用してランダムな文字を取得できます。


りー

以上がJavaScriptの文字統計、変数交換、配列差分のアルゴリズム例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。