JavaScriptで最大の頻度を構成する可能な限り最小の長さ
問題
最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。
私たちの関数は、配列arrの(連続した)サブ配列の可能な限り最小の長さを見つけることになっています。これは、配列全体と同じ要素の最大頻度を持ちます。
たとえば、関数への入力が
入力
const arr = [55, 77, 77, 88, 55];
出力
const output = 2;
出力の説明
要素55と77の両方が2回出現するため、入力配列は2の要素の中で最も頻度が高くなります。
配列全体の中で最も頻度が高いサブ配列のうち、最短の長さは2です。したがって、2を返します。
例
以下はコードです-
const arr = [55, 77, 77, 88, 55]; const shortestLength = (arr) => { let freq = 0 let len = Infinity arr.reduce((acc, num, index) => { if (acc[num] !== undefined) { acc[num].freq += 1 acc[num].range[1] = index } else { acc[num] = { freq: 0, range: [index, index], } } if (acc[num].freq > freq) { freq = acc[num].freq len = acc[num].range[1] - acc[num].range[0] + 1 } else if (acc[num].freq === freq) { len = Math.min( len, acc[num].range[1] - acc[num].range[0] + 1, ) } return acc }, {}) return len }; console.log(shortestLength(arr));
出力
2
-
JavaScript-配列オブジェクトの長さ
JavaScriptのlengthプロパティは、オブジェクトのサイズを返します。以下は、文字列および配列オブジェクトの長さのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document
-
すでに宣言されている変数に構造を解除することは可能ですか? JavaScriptでは?
以下は、JavaScriptですでに宣言されている変数を分解するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &