Как мы функционально пишем код внутри Javascript?
Сначала я сделал что-то вроде этого
render () {
if (!this.props.mainListFetching && !this.props.mainListError) {
let testData = this.sortAmountPledgingMaximumOrMinimum(this.props.mainList, "maximum")
console.info(testData) //Coming out to be undefined
this.sortTypeTownOrCountry(this.props.mainList)
this.sortPercentHighestOrLeast(this.props.mainList)
}
это вызывает следующую функцию
sortPercentHighestOrLeast = (data, type) => {
data.sort((a, b) => {
if (type == "maximum") {
return (
a["percentage.funded"] - b["percentage.funded"]
)
} else {
return (
b["percentage.funded"] - a["percentage.funded"]
)
}
})
console.info(data)
return data
}
Я ожидал, что результат вышеупомянутой функции будет сохранен в моей переменной testData
, но когда я использую console.info
, он оказывается неопределенным.
Мой console.info(data)
выводит результат в консоль, который подтверждает, что функция выполняется, а данные не определены?
[Обновлять:] Я тоже пробовал это (поскольку Js асинхронный)
let testData = this.sortAmountPledgingMaximumOrMinimum(this.props.mainList, "maximum", (data) => {
console.info("anything") //Doesn't log anything
})
🤔 А знаете ли вы, что...
JavaScript поддерживает работу с графикой и аудио, что позволяет создавать мультимедийные веб-приложения.
Предполагая, что funded
является вложенным свойством percentage
, вы можете переместить проверку условия на шаг вперед, поскольку вы проверяете каждую итерацию сортировки.
sortPercentHighestOrLeast = (data, type) => data.sort(type => type === "maximum"
? (a, b) => a.percentage.funded - b.percentage.funded
: (a, b) => b.percentage.funded - a.percentage.funded
);