我们如何在Javascript中以功能方式编写代码?
所以我最初所做的就是这样
render () {
if (!this.props.mainListFetching && !this.props.mainListError) {
let testData = this.sortAmountPledgingMaximumOrMinimum(this.props.mainList, "maximum")
console.log(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.log(data)
return data
}
我期望上述函数的结果将保存在我的testData
变量中,但是当我console.log
时,它的结果不确定。
我的console.log(data)
正在控制台中打印结果,以确认函数正在执行并且数据没有未定义?
[更新:] 我也尝试过此操作(因为Js是异步的)
let testData = this.sortAmountPledgingMaximumOrMinimum(this.props.mainList, "maximum", (data) => {
console.log("anything") //Doesn't log anything
})
答案 0 :(得分:2)
假设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
);