示例 JSON 檔案:
[
{
"discordId": "9273927302020",
"characters": [
{
"name": "Rare_Character",
"value": 1
},
{
"name": "Ultra_Rare_Character",
"value": 1
}
]
}
]
例如,假設我運行了這個簡單的 gacha 并獲得了 4 個字符:
let i = 1
var picks = []
while(i <= 4){
const { pick } = gacha.simple(alpha)
picks.push(pick)
i
}
現在,picks
有一個這樣的陣列:
[
{
"name": "Common_Character"
},
{
"name": "Ultra_Rare_Character"
},
{
"name": "Common_Character"
},
{
"name": "Rare_Character"
}
]
如何根據我在 gacha 結果中獲得的內容增加我value
的示例 JSON 檔案中的name
picks
Common_Character
Rare
Ultra_Rare
我試過像這樣過濾它們:
var filter = picks.filter(t => t.name === 'Rare_Character' || t.name === 'Ultra_Rare_Character')
現在我不知道如何在我的 JSON 檔案中增加這些值,如果在 gacha 結果中我得到兩個Rare_Characters
或Ultra_Rare_Character
我fs
用來讀取我的 JSON 檔案,但我只是不知道增加值的邏輯
uj5u.com熱心網友回復:
const src = [
{
"discordId": "9273927302020",
"characters": [
{
"name": "Rare_Character",
"value": 1
},
{
"name": "Ultra_Rare_Character",
"value": 1
}
]
}
];
const gacha = [
{
"name": "Common_Character"
},
{
"name": "Ultra_Rare_Character"
},
{
"name": "Common_Character"
},
{
"name": "Rare_Character"
}
];
const updateValues = (src, gacha) => {
const gachaSums = gacha.reduce((collector, current) => {
collector[current.name] = (collector[current.name] | 0) 1;
return collector;
}, {});
src.characters.forEach(srcChar => {
gachaSums[srcChar.name] = srcChar.value (gachaSums[srcChar.name] | 0);
});
src.characters = Object.entries(gachaSums).map(([key, value]) =>
({ name: key, value: value })
);
return src;
}
console.log(updateValues(src[0], gacha));
也許這個版本可以幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/469309.html
標籤:javascript 节点.js 不和谐.js fs
下一篇:使用nextjs定位粘性