我需要顯示具有現有屬性串列的物件并顯示它出現的次數:
有效載荷:
[
[
"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
}
作為動態屬性串列,它可以包含其他值(值、名稱、年齡...)
uj5u.com熱心網友回復:
您可以使用array#flat()然后使用array#reducecount 每個單詞的頻率來展平您的陣列。
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; }
uj5u.com熱心網友回復:
這是一個單行:
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)
uj5u.com熱心網友回復:
您可以使用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
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382258.html
標籤:javascript 数组 减少 动态数组 减速机
上一篇:遞回呼叫以列印數字串列
