如何在Js中以功能方式编写代码

时间:2018-11-10 21:41:18

标签: javascript

我们如何在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
          })

1 个答案:

答案 0 :(得分:2)

假设fundedpercentage的嵌套属性,您可以将条件检查向前推进,因为您需要检查每个排序迭代。

sortPercentHighestOrLeast = (data, type) => data.sort(type => type === "maximum"
    ? (a, b) => a.percentage.funded - b.percentage.funded
    : (a, b) => b.percentage.funded - a.percentage.funded
);