按名称属性动态信息列出计数数组
Posted
技术标签:
【中文标题】按名称属性动态信息列出计数数组【英文标题】:List count array by name attribute dynamics information 【发布时间】:2022-01-18 21:58:10 【问题描述】:我需要显示一个具有现有属性列表的对象并显示它出现的次数:
有效载荷:
[
[
"valor"
],
[
"tipo de entrada",
"data entrada",
"valor"
],
[
"tipo de entrada",
"data entrada",
"valor"
],
[
"tipo de entrada"
],
[
"tipo de entrada"
],
[
"tipo de entrada"
],
[
"valor"
],
[
"valor"
],
[
"valor"
],
[
"valor"
],
[
"tipo de entrada",
"data entrada",
"valor"
]
]
结果:
valor: 16,
tipo_entrada: 9,
dqta_entrada: 6
作为动态的属性列表,它可以包含其他值(值,名称,年龄...)
【问题讨论】:
【参考方案1】:您可以使用array#flat()
展平您的数组,然后使用array#reduce
计算每个单词的频率。
const arr = [ [ "valor" ], [ "tipo de entrada", "data entrada", "valor" ], [ "tipo de entrada", "data entrada", "valor" ], [ "tipo de entrada" ], [ "tipo de entrada" ], [ "tipo de entrada" ], [ "valor" ], [ "valor" ], [ "valor" ], [ "valor" ], [ "tipo de entrada", "data entrada", "valor" ] ],
result = arr.flat().reduce((r, word) =>
r[word] = (r[word] ?? 0) + 1;
return r;
,);
console.log(result);
.as-console-wrapper max-height: 100% !important; top: 0;
【讨论】:
【参考方案2】:这是一个单行:
var mainData = [ [ "valor" ], [ "tipo de entrada", "data entrada", "valor" ], [ "tipo de entrada", "data entrada", "valor" ], [ "tipo de entrada" ], [ "tipo de entrada" ], [ "tipo de entrada" ], [ "valor" ], [ "valor" ], [ "valor" ], [ "valor" ], [ "tipo de entrada", "data entrada", "valor" ] ]
var resultObj = ;
mainData.map(data => data.forEach(subData => resultObj[subData] = (Object.keys(resultObj).indexOf(subData) == -1 ? 1 : resultObj[subData] + 1) ))
console.log(resultObj)
【讨论】:
【参考方案3】:您可以使用flat 并使用它。
此代码定义并解释了解决问题的方法:
const result = ;
const initialArray = [['tomato'], ['ketchup', 'potato']];
const strings = initialArray.flat(); // ['tomato', 'ketchup', 'potato']
for (const string of strings)
// string is 'tomato' for example
// result[string] would then be result[tomato]
if (result[string])
result[string] += 1; // result.tomato already exists? Add 1 to it
else
result[string] = 1; // if it does not exists, create it with value 1
【讨论】:
以上是关于按名称属性动态信息列出计数数组的主要内容,如果未能解决你的问题,请参考以下文章