JavaScriptで文字列の組み合わせでランキングを生成する
任意の数の数値の配列を受け取るJavaScript関数を作成する必要があります。次に、この関数は、すべての配列をチェックして各要素が出現した回数を示す頻度マップを返すオブジェクトを返す必要があります。
たとえば、配列が-
の場合const a = [23, 45, 21], b = [45, 23], c = [21, 32], d = [23], e= [32], f=[50, 54];
その場合、出力は-
になります。const output = {
"21": 2,
"23": 3,
"32": 2,
"45": 2,
"52": 1,
"54": 1,
"23, 45": 2,
"23, 45, 21": 1,
"21, 32": 1,
"50 : 54": 1,
"50" : 1
} 例
このためのコードは-
になりますconst a = [23, 45, 21], b = [45, 23], c = [21, 32], d = [23], e= [32], f=[50, 54];
const findMatch = arr => {
let result = [];
const pick = (i, t) => {
if (i === arr.length) {
t.length && result.push(t);
return;
};
pick(i + 1, t.concat(arr[i]));
pick(i + 1, t);
};
pick(0, []);
return result;
};
const sorter = (a, b) => a - b;
const mergeCombination = (arr, obj) => {
findMatch(arr.sort(sorter)).forEach(el => {
return obj[el.join(', ')] = (obj[el.join(', ')] || 0) + 1
});
};
const buildFinalCombinations = (...arrs) => {
const obj = {};
for(let i = 0; i < arrs.length; i++){
mergeCombination(arrs[i], obj);
};
return obj;
};
console.log(buildFinalCombinations(a, b, c, d, e, f)); 出力
コンソールの出力-
{
'21': 2,
'23': 3,
'32': 2,
'45': 2,
'50': 1,
'54': 1,
'21, 23, 45': 1,
'21, 23': 1,
'21, 45': 1,
'23, 45': 2,
'21, 32': 1,
'50, 54': 1
} -
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&g
-
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>