首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解减()函数的工作原理

理解减()函数的工作原理
EN

Stack Overflow用户
提问于 2015-08-01 17:35:16
回答 3查看 87关注 0票数 0

我只是想确保我知道这个函数是如何工作的。昨天晚上,我看了一些资料,看了大概3个小时的视频,我没有得到它。我离开我的电脑,做了一些食物,看了一个电视节目,然后又看了看电脑和砰!这样啊,原来是这么回事。我现在知道约减函数是如何工作的。

我只是不知道为什么下面的第一个例子是有效的,而第二个则不行。

来源:雄辩的Javascript Ch.5§扁平

这样做是可行的:

代码语言:javascript
运行
复制
var arrays = [[1, 2, 3], [4, 5], [6]];

var flattened = arrays.reduce(function(a, b) {
  return a.concat(b);
});

flattened; //=>[1, 2, 3, 4, 5, 6]

我试图篡改代码,将变量更改为函数。不知怎么的,我把它弄坏了。下面将返回undefined,我不知道原因。

这不管用:

代码语言:javascript
运行
复制
var arrays = [[1, 2, 3], [4, 5], [6]];

function flattened(arr){
  arr.reduce(function(a, b) {
    return a.concat(b);
  });
}
flattened(arrays); //=> undefined

为什么第一个函数工作,而不是第二个功能?我肯定这是我错过的小东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-01 17:38:24

因为函数flattened不返回任何内容。

代码语言:javascript
运行
复制
function flattened(arr){
  /* “return” needs to be here */ arr.reduce(function(a, b) { // No return from the outer wrapper function “flattened”
    return a.concat(b); // return from the inner function “reduce”
  });
}

它中的函数确实返回了一些东西,但是包含的函数没有返回。

票数 1
EN

Stack Overflow用户

发布于 2015-08-01 17:37:44

您需要从return函数中提取flattened

代码语言:javascript
运行
复制
function flattened(arr){
  return arr.reduce(function(a, b) {
    return a.concat(b);
  });
}
票数 2
EN

Stack Overflow用户

发布于 2015-08-01 17:41:07

平面()需要返回如下所示的值:

代码语言:javascript
运行
复制
var arrays = [[1, 2, 3], [4, 5], [6]];

function flattened(arr){
return arr.reduce(function(a, b) {
  return a.concat(b);
});
}
flattened(arrays);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31764372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档