如果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
答案 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
}