Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >返回的函数具有来自父函数的未定义结果数组

返回的函数具有来自父函数的未定义结果数组
EN

Stack Overflow用户
提问于 2016-12-27 22:31:05
回答 0查看 58关注 0票数 0

我正在尝试创建一个简单的函数来使用ES5对数组进行深度展平。我下面的方法是可行的,但似乎不是最优的,因为res结果数组保存在What函数之外。

代码语言:javascript
代码运行次数:0
复制
    var arr = [1, 2, [3], [4, [5, [6, 7, 8, 9, 10, 11]]]]
      , res = [];
    function flatten(item){
      if (Array.isArray(item)) {
       item.forEach(el => {
         return flatten(el, res);
       });
      }else {
        res.push(item);
      }
    }
    
    flatten(arr);
    console.log(res); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

像生活这样的东西看起来很接近:

代码语言:javascript
代码运行次数:0
复制
function flatten(item){
  var res = [];
  return (function(ress){
    if (Array.isArray(item)) {
     item.forEach(el => {
       return flatten(el);
     });
    }else {
      res.push(item);
    }
  })(res);
}

但是我没有完全理解它,因为res在这里是未定义的。理想情况下,我希望函数的最后一行返回res,这样函数就可以像var f = flatten(arr)一样使用。

注意:

*这个问题不是专门关于如何深度展平数组的,因为有很多关于这个问题的答案。我真正感兴趣的是如何在这个实例中将results变量保留在父函数中。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41352997

复制
相关文章
如何在Dart中合并列表
在 Dart 编程中,List 数据类型类似于其他编程语言中的数组。列表用于表示对象的集合。它是一组有序的对象。Dart 中的核心库负责 List 类的存在、创建和操作。有 5 种方法可以组合两个或多个列表:
徐建国
2021/12/01
2.1K0
如何在Firefox中配置HTTP?
在浏览器中配置HTTP是一个常见的需求,它可以让我们轻松访问需要的网站或保护个人隐私。本文将为您详细介绍如何在Firefox浏览器中配置HTTP应用,帮助您实现无缝的HTTP体验。无论您是初次接触HTTP还是有一定经验的用户,本文都能为您提供实用的操作步骤和示例代码。让我们一起来配置Firefox的HTTP吧!
华科云商小徐
2023/10/10
5710
dart系列之:浏览器中的舞者,用dart发送HTTP请求
dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们在浏览器端另一个常用的操作就是使用XMLHttpRequest去做异步HTTP资源的请求,也就是AJAX请求。
程序那些事
2021/12/15
8450
dart系列之:浏览器中的舞者,用dart发送HTTP请求
Qt中QMap键值对基本用法(键值对)
T1为键值对中的键key,T2为键值对中的值。通过键值对中的键可以搜索到值。一般来说,键值对中的键是唯一的,不可重复,而值没有要求,可以重复。并且QMap具有自动排序功能,对输入的键进行排序。
全栈程序员站长
2022/09/02
3.6K0
python字典批量删除多个键值对(连续)
  搜不到字典批量删除多个键值对的方法,换了个搜索姿势,批量取N个元素,那么组合一下,就出来了!
逆向小白
2023/10/16
2040
python字典批量删除多个键值对(连续)
【说站】python get获取指定键值
default:可选参数,当指定的键不存在时,返回默认值,如果省略 default 参数,则返回 None。
很酷的站长
2022/11/23
1.3K0
C#获取url中参数键值对的方法建议收藏
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120772.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/15
1.7K0
如何在 Linux 中更改 Apache HTTP 端口?
Apache Web Server 是一个免费的开源跨平台 Web 服务器应用程序,用于通过 Internet 提供内容。
网络技术联盟站
2022/06/21
6.2K0
如何在 Linux 中更改 Apache HTTP 端口?
如何在 wxPython 中创建多个工具栏
作为C++库wxWidgets的包装器,wxPython允许Python开发人员利用这个成熟且经过实战测试的框架的强大功能。它具有各种平台的本机外观和感觉,包括Windows,macOS和Linux。使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速的桌面应用程序。
很酷的站长
2023/08/11
2920
如何在 wxPython 中创建多个工具栏
如何在Ansible中复制多个文件和目录
Ansible 通过 copy 和 fetch 模块提供了基本的复制文件和目录的功能.
东风微鸣
2022/04/21
17.3K2
如何在Ansible中复制多个文件和目录
如何在Flutter和Dart中检查数字字符串
要检查字符串是否为数字字符串,可以使用double.tryParse()方法。如果返回值等于null,则输入不是数字字符串,否则是。
徐建国
2021/09/08
3.4K0
JDBC 获取插入记录的主键值(9)
import java.sql.*; public class JDBCTest03 { public static void testGetKeyValue() throws ClassNotFoundException, SQLException, SQLException { String sql = "INSERT INTO examstudent(type,id_card, exam_card, student_name,location,grade)"
桑鱼
2020/03/17
1K0
python获取字典中键对应的键值
当字典中的键值存在时,这两种方法没啥区别。但是,当字典中的键值不存在的时候,比如下面这个例子:
灯珑LoGin
2022/10/24
9440
如何在gin中获取响应体内容?
实现思路: 对gin的responseWriter进行包装, 每次写往请求方写响应数据的时候,将响应数据返回出去。step1: 定义一个新的CustomResponseWriter,通过组合方式持有一个gin.ResponseWriter和response body缓存。type CustomResponseWriter struct { gin.ResponseWriter body *bytes.Buffer}func (w CustomResponseWriter) Write(b []byt
Johns
2021/04/10
11.6K0
如何在gin中获取响应体内容?
NodeJs中的express框架获取http参数
最近本人在学习开发NodeJs,使用到express框架,对于网上的学习资料甚少,因此本人会经常在开发中做一些总结。 express获取参数有三种方法:官网介绍如下 Checks route par
蛋未明
2018/06/07
2.2K0
如何在Bash中获取数组长度?
在Bash脚本中,数组是一种常用的数据结构,用于存储多个值。在处理数组时,经常需要知道数组的长度,即数组中元素的个数。本文将详细介绍如何在Bash中获取数组长度的方法,以帮助您更好地处理数组操作。
网络技术联盟站
2023/06/17
1.3K0
如何在Bash中获取数组长度?
dart系列之:dart中的异步编程
熟悉javascript的朋友应该知道,在ES6中引入了await和async的语法,可以方便的进行异步编程,从而摆脱了回调地狱。dart作为一种新生的语言,没有理由不继承这种优秀的品质。很自然的,dart中也有await和async语言,一起来看看吧。
程序那些事
2021/11/21
1.3K0
Dart中..级联操作
class Person { var name; var age; Person(this.name, this.age); getInfo() { print("${this.name},${this.age}"); } } main() { var p = new Person('张三', 20); p.getInfo(); //..为级联操作,可以同时赋值执行方法 p ..name = "李四" ..age = 30 ..getIn
明知山
2020/09/03
7500
点击加载更多

相似问题

如何在Dart中动态执行(如Eval)?

40

http获取python查询键值

20

从Redis获取多个键值

21

如何在Java Script/TestCafe中获取多个键值对数组

226

如何在dart中连接map中的两个键值?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文