考慮以下示例 JS 物件
const samplejson = [
{id:'1',value: "AC",},
{id:'2',value: "AB",},
{id:'3',value: "AC",},
{id:'4',value: "AA",},
{id:'5',value: "AA",},
{id:'6',value: "AA",},
{id:'7',value: "AB",},
{id:'8',value: "AC",},
{id:'9',value: "AA",},
{id:'10',value: "AA",},
]
我想根據值的唯一計數和降序過濾 JS 物件,如下所示
基于值計數AA - 5, AB - 2 和 AC - 3,但我需要輸出為AA,AC
在反應或 JS 中如何實作這一點?
uj5u.com熱心網友回復:
您可以遍歷示例資料中的任何鍵并計算字典中值的每次出現。然后,您可以列印字典以獲取出現次數串列或僅列印一個值的出現次數。
const data = [
{id:'1',value: "AC",},
{id:'2',value: "AB",},
{id:'3',value: "AC",},
{id:'4',value: "AA",},
{id:'5',value: "AA",},
{id:'6',value: "AA",},
{id:'7',value: "AB",},
{id:'8',value: "AC",},
{id:'9',value: "AA",},
{id:'10',value: "AA",},
]
// make a dict to store and count occurrences
dict = {};
//iterate over every key in your data and keep count in dict
//(initializing it to 1 if it not exists yet)
for(let i = 0; i < data.length; i ){
value = data[i].value;
if(value in dict){
dict[value] ;
}else{
dict[value] = 1;
}
}
// here the amount of occurrences are know
console.log(dict);
amountOfAA = dict['AA'];
輸出:{ AC: 3, AB: 2, AA: 5 } 5
uj5u.com熱心網友回復:
看一下這個:
const data = [{id:'1',value: "AC",},{id:'2',value: "AB",},{id:'3',value: "AC",}, {id:'4',value: "AA",},{id:'5',value: "AA",},{id:'6',value: "AA",},{id:'7',value: "AB",}, {id:'8',value: "AC",},{id:'9',value: "AA",},{id:'10',value: "AA",},];
const result = Object.entries(
data.reduce((acc, { value }) => ({ ...acc, [value]: (acc[value] || 0) 1 }), {})
).sort((a1, a2) => a2[1] - a1[1])
.map(([key]) => key)
.join(',');
console.log(result);
uj5u.com熱心網友回復:
可以使用以下步驟找到您想要的結果:
- 計算值。
- 按降序對值/計數對進行計數。
- 洗掉計數,只留下值。
const items = [
{ id: '1', value: "AC" },
{ id: '2', value: "AB" },
{ id: '3', value: "AC" },
{ id: '4', value: "AA" },
{ id: '5', value: "AA" },
{ id: '6', value: "AA" },
{ id: '7', value: "AB" },
{ id: '8', value: "AC" },
{ id: '9', value: "AA" },
{ id: '10', value: "AA" },
];
const tally = new Map();
for (const { value } of items) {
if (!tally.has(value)) tally.set(value, 0);
tally.set(value, tally.get(value) 1);
}
// displaying as object because Map instances show empty in the snippet log
console.log(Object.fromEntries(tally));
const results = Array.from(tally)
.sort(([,countA], [,countB]) => countB - countA)
.map(([value]) => value);
console.log(results);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/388528.html
標籤:javascript 数组 反应 目的
