是否有获取JSON属性的函数可以作为参数传递



我正在为我的同事们制作一个关于JS函数式编程的PPT(因为Java的Streams有太多的样板文件用于介绍(,我想知道:在没有库的情况下获取对象的属性有语法糖吗?

在Java中,您可以执行以下操作:(例如,基于具有name属性的Person及其getter方法(

public List<String> names(List<Person> people){
return people.stream().map(Person::getName).collect(Collectors.toList())
}

我正在寻找Person::getName的等效项。

编辑:我希望为lambda表达式找到一个变通方法,在该表达式中,函数直接作为参数传递。

因此,人们会放一些类似people.map(getName)或类似的东西来代替people.map(person => person.name)

不,JavaScript没有1,习惯上只使用箭头函数(Java俚语中的"lambda"(:

names(people){
return people.map(p => p.name); // or p => p.getName();
// or people[Symbol.iterator]().map(…).toArray();
}

1:如果你真的有一个带有getName原型方法的class Person,你可以简单地编写一个帮助函数const accessor = method => instance => method.call(instance);用作.map(accessor(Person.prototype.getName)),但这不是很习惯。最多用于按属性名称访问事物:const get = propName => object => object[propName];.map(get("name"))

相关内容

  • 没有找到相关文章