#reactjs #immutable.js
#reactjs #immutable.js
Вопрос:
Я пишу это в этой функции, где массив содержит массивы из двух элементов, имени пользователя и оценки. Я хочу найти верхние N имен пользователей по их количеству, поэтому каждый раз, когда вызывается функция, я проверяю, есть ли имя пользователя, на которое я смотрю, уже в массиве.
findLargest(array) {
let largest = this.state.users.toIndexedSeq().get(0);
let score = 0;
console.log(array);
// eslint-disable-next-line consistent-return
this.state.users.entrySeq().forEach((element) => {
console.log([element[1].username, element[1].score]);
if (array.includes([element[1].username, element[1].score])) {
console.log(element);
console.log(array);
return null;
}
if (element[1].score > largest.score) {
// eslint-disable-next-line prefer-destructuring
largest = element[1];
score = element[1].score;
}
});
return [largest.username, score];
}
Тем не менее, я просто получаю лучший результат N раз.
Комментарии:
1. Я не могу вам помочь, если вы не предоставите примеры ввода и ожидаемого результата. Кроме того, вы смешиваете функциональное и императивное программирование. Рассмотрите возможность использования
reduce
вместоforEach
.2. какой тип
array
? Вероятно, ошибка заключается в использовании [username, score], которое создает новый объект. сравнение этого по ссылке на что-либо всегда обречено на неудачу