繁体   English   中英

如何将其转换为es6箭头函数? 在香草 JS 中

[英]How to convert it into es6 arrow functions? in Vanilla JS

嗨,我想将此代码转换为 es6 箭头函数,这里是示例代码。 但我收到这样的错误:

在此处输入图片说明

 let pets = [ {name: "Meowsalot", species: 'cat', age: 2}, {name: "Barksalot", species: 'dog', age: 4}, {name: "Purrsloud", species: 'cat', age: 10} ] pets.push({ name: 'Puppster', species: 'dog', age: 1 }) let ourTest = pets.map(nameOnly) function nameOnly(x) { return x.name } let dogs = pets.filter(onlyDogs) function onlyDogs(x) { return x.species == 'dog' } function onlyBabies(x) { return x.age < 3 } let babyDogNames = pets.filter(onlyDogs).filter(onlyBabies).map(nameOnly) // here is my es6 version let ourTest = pets.map(nameOnly => nameOnly.name); let dogs = pets.filter(onlyDogs => onlyDogs.species == "dog"); (onlyBabies) => onlyBabies.age < 3 let babyDogNames = pets.filter(onlyDogs).filter(onlyBabies).map(nameOnly); console.log(babyDogNames);

您正在传递一个未声明的箭头函数let babyDogNames = pets.filter(onlyDogs).filter(onlyBabies).map(nameOnly); . 您应该传递匿名箭头函数

let babyDogNames = pets.filter(pet => pet.species == 'dog') // filter only dogs
    .filter(pet => pet.age < 3)          // filter only babies
    .map(pet => pet.name);               // get names

或将所有箭头函数声明为变量,然后传递它们:

const onlyDogs = pet => pet.species == 'dog';
const onlyBabies = pet => pet.age < 3;
const onlyNames = pet => pet.name;

let babyDogNames = pets.filter(onlyDogs).filter(onlyBabies).map(onlyNames);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM