Nes*_*esh 8 javascript ecmascript-6
我正在学习ES6,以下是我的ES5代码运行正常 -
var myArr = [34,45,67,34,2,67,1,5,90];
var evenArr = [];
var oddArr = [];
myArr.map(function(x){
if(x%2==0) evenArr.push(x);
else oddArr.push(x);
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我将其转换为ES6,我会收到Unexpected token
附近的错误if
,让我知道我在这里做错了什么 -
我的ES6代码 -
var myArr = [34,45,67,34,2,67,1,5,90];
var evenArr = [];
var oddArr = [];
myArr.map( x => if(x%2==0) evenArr.push(x) else oddArr.push(x) )
Run Code Online (Sandbox Code Playgroud)
您应该使用三元运算符来实现内联条件.
myArr.map( x => x%2==0 ? evenArr.push(x) : oddArr.push(x) )
Run Code Online (Sandbox Code Playgroud)
那是因为箭头函数在传递语句时接受表达式.
您的代码具有误导性:Array.prototype.map
意味着您会以某种方式使用结果,而不是.
如果你想改进你的代码的语义,你会使用Array.prototype.forEach
专门设计的迭代数组而不返回任何东西:
var myArr = [34,45,67,34,2,67,1,5,90];
var evenArr = [];
var oddArr = [];
myArr.forEach(x => {
if (x % 2 === 0) {
evenArr.push(x);
} else {
oddArr.push(x);
}
});
Run Code Online (Sandbox Code Playgroud)
参考文献:
归档时间: |
|
查看次数: |
32197 次 |
最近记录: |