【JavaScript】配列の最初のn%だけを取得する関数の作り方
JavaScriptでは、「配列と0〜100の数値(両端を含む)を受け取り、その配列の先頭からn%分の要素だけを返す関数」を作りたい場面があります。たとえば、第2引数が0なら空の配列を、100なら元の配列全体を、50なら半分の要素を返す、というイメージです。
さらに、第2引数が省略された場合はデフォルト値として50を使用する仕様にします。以下がその実装コードです。
サンプルコード
const numbers = [3,6,8,6,8,4,26,8,7,4,23,65,87,98,54,32,57,87];
const byPercent = (arr, n = 50) => {
const { length } = arr;
const requiredLength = Math.floor((length * n) / 100);
return arr.slice(0, requiredLength);
};
console.log(byPercent(numbers));
console.log(byPercent(numbers, 84));
console.log(byPercent(numbers, 34));
コードの解説
- デフォルト引数:
n = 50とすることで、第2引数が渡されなかった場合に自動的に50%が適用されます。 Math.floor():配列の長さにn%を掛けた値の小数点以下を切り捨て、取得する要素数を整数として計算します。これにより、端数が出てもインデックスとして不正な値になることを防げます。arr.slice(0, requiredLength):元の配列を変更せず、先頭から必要な長さ分の要素だけを新しい配列として取り出します。
実行結果
コンソールには次のように出力されます。
[
3, 6, 8, 6, 8,
4, 26, 8, 7
]
[
3, 6, 8, 6, 8, 4,
26, 8, 7, 4, 23, 65,
87, 98, 54
]
[ 3, 6, 8, 6, 8, 4 ]
このように、Math.floor()とslice()を組み合わせるだけで、元の配列を壊すことなく任意の割合の要素を簡単に取得できます。ページネーションのプレビュー表示やデータの一部抽出など、さまざまな場面で応用できるテクニックなので、ぜひ覚えておきましょう。
-
JavaScriptで配列内の最頻値(最も共通する要素)を取得する方法
繰り返しの値を含むリテラルの配列を受け取り、その中で最も多く出現する要素(最頻値)を配列として返すJavaScript関数を作成する必要があります。2つ以上の要素が同じ回数だけ最も多く現れる場合は、該当するすべての要素を結果の配列に含めなければなりません。実装コード例この処理を実装したコードは以下のとおりです。const arr1 = [a, c, a, b, d, e, f]; const arr2 = [a, c, a, c, d, e, f]; const getMostCommon = arr => { const count = {}; let res = []
-
PHPで配列の最初の要素を取得する方法をわかりやすく解説
PHPで配列の最初の要素を取得する方法はいくつかあります。ここでは、代表的な手法をサンプルコードとともに紹介します。例1:キーを直接指定して取得する連想配列の場合、先頭のキーがわかっていれば、そのキーを指定するだけで最初の要素にアクセスできます。<?php $arr = array( p=>150, q=>100, r=>120, s=>110, t=>115, u=>103, v=>105, w=>125 ); echo 配列の値 ...\n;