数组中的filter函数,递归以及一些应用。

摘要:
当我们使用一件东西时,我们需要知道什么?我想我会在js中尝试。我一直在追求元圣js,这让我开始思考我的学习方法和思维方式。我该怎么办?然后js中的过滤器执行类似的功能。判断数组中满足特定条件的元素,并返回由这些元素组成的数组。9个孩子:'c'13}14]15}16]17}]现在让我获取数据中ID为3的数据。这意味着在满足某些条件时重复操作。

当我们用一个东西时候我们必须知道的是?why---where----how---when。一个东西我们为什么用?在哪用?怎么用?何时用?而不是被动的去接受一些东西。用在js里边我觉得也会试用。一直追求源生js,虽然也都背过好多东西,但是随着时间的流逝,工作的繁忙都忘了,有时甚至一点印象都没有,这让我开始思考我的学习方法了已经思维方式了。我们要记得不是简单的那个单词然后开始联想这个单词有什么用?一定是我要做什么事情?然后联想到谁可以做。带有目的性的学习。

现在有十个人(也就是数组)需要我们把属虎的人给跳出来。我们该怎么做?一定是一个一个问。你属虎吗?他要回答是。那么拉到一边。如果不是 ,忽略继续下一个。最终得到的就是一个属虎的人组成的队列(数组)。那么js中的filter就是做的类似的功能。判断一个数组中满足一定条件的元素并且返回这些元素组成的数组。

来看个例子,有一个数据 

 1 var data = [
 2   {
 3     id: 1,
 4     name: 'a',
 5     children:[
 6       {
 7         id: 2,
 8         name:'b',
 9         children:[
10           {
11             id:3,
12             name:'c'
13           }
14         ]
15       }
16     ]
17   }
]

现在让我取得data中id为3的数据。怎么做?这个问题涉及到了递归问题。什么叫递归?就是满足一定的条件就做重复的动作。

那么让我们来写个函数来实现这个功能

function getItem (data,id){
  let result;
  result = data.filter (function (item){
    return item.id === id
  })
  if (data.children){
    result = result.concat(getItem(data.children,id))
  }
  return result
}

1:我们什么时候递归,一定是这个 item含有children的时候。那么重复的动作是什么?就是遍历数组,一个一个进行判断是否id为3.。这样我们就完成了这个功能,当然这个功能还不完美,没做 数据类型限制等等。可能写得还不好。。。但是希望思路能够有点用。

免责声明:文章转载自《数组中的filter函数,递归以及一些应用。》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++雾中风景17:模板的非推断语境与std::type_identity使用阿里云服务器写shell脚本发送qq邮件的三个形式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS7安装部署Redis5.0.9并配置开机自启动

(1)下载Redis5.0.9.tar.gz安装包 下载地址:https://download.redis.io/releases/redis-5.0.9.tar.gz wget http://download.redis.io/releases/redis-5.0.9.tar.gz (2)将安装包上传至服务器/data目录下,如没有该目录请先创建 mkd...

eMMC基础技术6:eMMC data读写

1. 前言 data可以经data线从host发往device,也可以从device发往host 数据线以是1线(DATA0),4线(DATA0~DATA3),8线(DATA0~DATA7) 对每条数据线,每个时钟周期可以传输1bit(single data rate)和2bits(dual data rate)数据 2. data传输 eMMC传输是...

(1)OracleClient数据库操作(淘汰)

一、数据库连接 Oracle 数据提供程序,位于System.Data.OracleClient命名空间.(.NET 4 以后的版本,会将不在维护和更新了) 第一步:引入命名空间 在程序的开头写上下面的代码 using System.Data.OracleClient; 第二步:引入对应组件 点击项目-右键-添加引用-找到System.Data.Oracl...

jsTree通过AJAX从后台获取数据

页面代码: <div id="MenuTree"></div> javascript代码: $(document).ready(function($) { InitMenuTree(); }); functionInitMenuTree() { $('#MenuTree').data('jstree', false);...

KNN算法源代码

import pandas as pdimport osdef creatcatesdir(data, target):# 获取去重后的分类列表 cates = list(data['channelName'].unique())# 打印类别 print(cates)# 建立类别文件夹 for cate in cates:# 拼接子目录路...

什么是物联网网关?物联网网关具备什么功能?_转

参考:什么是物联网?物联网产业链体系深度分析 随着物联网概念的不断深入,商业级的网络应用遍地开花,各种智能家电层出不穷,改善着我们的生活。与此同时,物联网网关也将成为连接的重要纽带。作为网关设备,物联网网关除了要担负不同类型感知网络之间的协议转换的职责,而且还将具备部分的底层节点设备管理功能。 什么是网关? 从一个房间走到另一个房间,必然要经过一扇门。同样...