比较来自世界各地的卖家的域名和 IT 服务价格

如何使用 ES6 Fat Arrow to .filter// 一系列对象

我正在尝试使用这个功能 ES6 arrow 和
.filter

返回成年人 /Jack & Jill/. 看起来我不能使用运营商 if.

我需要知道的是做什么 ES6?


var family = [{"name":"Jack", "age": 26},
{"name":"Jill", "age": 22},
{"name":"James", "age": 5 },
{"name":"Jenny", "age": 2 }];

let adults = family.filter/person => if /person.age > 18/ person/; // throws error

/8:37/ SyntaxError: unknown: Unexpected token /8:37/
|let adults = family.filter/person => if /person.age > 18/ person/;


我的工作示例 ES5:


let adults2 = family.filter/function /person/ {
if /person.age > 18/ { return person; }
}/;
已邀请:

涵秋

赞同来自:

看起来我不能使用运营商 if.

箭头的功能允许您用作身体或表达式,

或者

堵塞

. 表达转移


foo => bar


相当于下一个块


foo => { return bar; }


但,


if /person.age > 18/ person


这不是表达式,
if

-这个说法。 因此,如果要使用,您必须使用块
if

在箭头的功能中:


foo => { if /person.age > 18/ return person; }


虽然它在技术上解决了这个问题 , 这令人困惑
.filter

, 因为它假定您必须返回输出阵列中必须包含的值。 但是,回调,转移到
.filter

, 必须退货

逻辑

价值 , 它是。
true

或者
false

, 指示项目是否应包含在新数组中。

所以你需要的只是


family.filter/person => person.age > 18/;


在 ES5:


family.filter/function /person/ {
return person.age > 18;
}/;

二哥

赞同来自:

你不能隐含地回来
if

, 您需要卷曲括号:


let adults = family.filter/person => { if /person.age > 18/ return person} /;


但是,它可以简化:


let adults = family.filter/person => person.age > 18/;

詹大官人

赞同来自:

尽可能简单
const adults = family.filter//{ age }/ => age > 18 /;



const family =[{"name":"Jack", "age": 26},
{"name":"Jill", "age": 22},
{"name":"James", "age": 5 },
{"name":"Jenny", "age": 2 }];

const adults = family.filter//{ age }/ => age > 18 /;

console.log/adults/

诸葛浮云

赞同来自:

这是我对那些使用的人的决定
hook

; 如果您列出网格中的项目并希望删除所选项目,则可以使用此解决方案。


var list = data.filter/form => form.id !== selectedRowDataId/;
setData/list/;

要回复问题请先登录注册