Scala:价值<不是Array [Double]的成员

时间:2016-12-12 22:10:34

标签: scala

如果x小于0.000001,我试图替换x的值,那么x将等于0.000001。然后返回log(x)。

这是我的scala代码:

src/components/Experiment.jsx

import React from 'react';

class Experiment extends React.Component {

  render() {
    if (Array.isArray(this.props.children)) {
      const activeVariant = this.props.children.filter((c) => {
        return c.props.id === this.props.activeVariant;
      });

      return (
        <div>
          {activeVariant}
        </div>
      );
    }
    return (
      <div>
        {this.props.children}
      </div>
    );
  }
};

export default Experiment;

感谢您的帮助! 我对Scala真的很陌生,没有以前的编码经验,除了R

2 个答案:

答案 0 :(得分:2)

这将为您提供一个包含更改值的新数组:

val xx = x.map { y => if (y < 0.000001) 0.000001 else scala.math.log(y) }

我猜你也想从方法中返回新数组,所以:

def log(args: Array[Double]): Array[Double] = {
  var x = Array.fill(20){math.random}
  x.map { y => if (y < 0.000001) 0.000001 else scala.math.log(y) }
}

答案 1 :(得分:2)

除了radumanolescu的答案之外,你还可以使用case来应用map函数,如下所示(这是一个很好的技巧,特别是对于嵌套的ifs或值绑定):

x.map {
    case y if y >= 0.000001 => scala.math.log(y)
    case y => y
}