Javascript 将方法链接在一起

标签 javascript

假设我有一个包含多部电影的数组,这些电影对象包含标题/评分/等内容...

如果我这样做:

let filteredMapList = arr.filter(function(obj){
  return obj.Rating > 8.0;
}).map(function(obj){
  return {title: obj.Title,rating: obj.Rating};
});

这应该有效,并且只返回 8.0 以上的电影,并且只返回新对象中的标题和评级。

所以我的困惑是……到底哪个先运行? map 是先运行然后通过过滤器还是过滤器先运行然后运行 map (这看起来很奇怪......即使它是这样布局的)。

当将方法链接在一起时,您究竟如何......遵循链条。另外,在方法之间传递的 obj 是否需要相同?如果不是......那么我真的很困惑它是如何工作的。

最佳答案

它们完全按照它们所在的顺序链接和运行。如果你这样重写它会更明显一点:

let a = arr.filter(function(obj){
  return obj.Rating > 8.0;
});

let b = a.map(function(obj){
  return {title: obj.Title,rating: obj.Rating};
});

filter 首先发生并转到 a,然后 mapa 上调用并转到 b 与你的结果。

链接函数是一样的,您只是跳过了为每个步骤创建变量的步骤。

关于Javascript 将方法链接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43619930/

相关文章:

javascript - LassoJS 和 Marko-WIdgets

javascript - 当菜单打开时,如何将类添加到页面主体?

javascript - 元素放在 javascript 之前但 getElementById 返回 null javascript

javascript - 包括使用 Javascript 的 OpenWeatherMap API

javascript - Javascript 将未声明的函数用作对象的能力如何帮助在计算机之间划分任务?

javascript - 带有数据表的多个引导选项卡。子行仅在其中一个选项卡上打开

javascript - 在远程托管的 node-webkit 应用程序中使用 require()

javascript - Ember.js 1.5.1 绑定(bind)属性禁用到按钮

javascript - 在 React 组件中收听 window.onmessage

javascript - 为什么在 javascript 函数调用中使用方括号?查询