Желаемое состояние
Я пытаюсь вернуть объект из массива, который соответствует определенному значению, и я сталкиваюсь с некоторыми проблемами, потому что массив содержит объекты, вложенные в другой объект,Я хочу вернуть весь объект, но значение, которое мне нужно найти, находится внутри вложенного объекта.
Например, я пытаюсь вернуть весь этот объект, основываясь на значении пары ключ: значение"name": "Kills"
{
"metadata": {
"key": "kills",
"name": "Kills",
"isReversed": false
},
"value": 1364,
"displayValue": "1,364"
}
Формат массива
let stats = [
{
"metadata": {
"key": "kills",
"name": "Kills",
"isReversed": false
},
"value": 1364,
"displayValue": "1,364"
},
{
"metadata": {
"key": "score",
"name": "Score",
"isReversed": false
},
"value": 413743,
"displayValue": "413,743"
},
{
"metadata": {
"key": "matchesPlayed",
"name": "Matches Played",
"isReversed": false
},
"value": 2160,
"displayValue": "2,160"
}
]
Текущий код, который не работает
Я не настроен на использование кода этой структуры, любое решение, которое работает, прекрасно для меня, но мне нужно, чтобы оно было функцией, которую я могу использовать повторно.
function getStatsFields(value, statsSegment){
console.log('getStatsFields ran', statsSegment.stats[0].metadata.name);
console.log('statsSegment.stats.length', statsSegment.stats.length);
var filteredStats = []
for(var i=0; i < statsSegment.stats.length; ++i){
const killsKey = Object.keys(statsSegment.stats[i].metadata.name)
console.log('killsKey', killsKey);
filteredStats = statsSegment.stats.filter(val => val[killsKey] === value)
console.log('filteredStats before if', filteredStats);
if(filteredStats.length){
console.log('filteredStats[i]', filteredStats[i]);
return filteredStats[i];
}
}
}
Любая помощь будет принята с благодарностью!