数组对象删除不满足某些条件的对象 js
recursiveFunction(items, childrenNodeName, ids) {
console.log('items', ids);
// 获取数组长度
if (items) items = [];
let len = items?.length
// 循环遍历数组
for (let i = 0; i < len; i++) {
// 如果有子节点,递归遍历子节点
if (items[i][childrenNodeName].length > 0) {
this.recursiveFunction(items[i][childrenNodeName], childrenNodeName, ids)
}
// 删除不满足某些条件的节点,删除后,当前数组下标、长度均减一(这里条件是:
// 当前项 id)
console.log('ids.includes(items[i].id)', ids.includes(items[i].id));
if (!ids.includes(items[i].id)) {
items.splice(i, 1)
len--
i--
}
}
},
filter(data, id) {
var newData = data.filter(x => x.id === id)
newData.forEach(x => x.children && (x.children = this.filter(x.children, id)))
return newData
},
数组对象删除不满足某些条件的对象 js的更多相关文章
- Array.prototype.removeBeginWithVal(删除数组内以某值开头的字符串对象)
Array扩展方法: //author: Kenmu //created time: 2015-03-16 //function: 删除数组内以某值开头的字符串对象 Array.prototype.r ...
- javaScript删除对象、数组中的null、undefined、空对象、空数组方法
这两天在项目中遇到后台需要传的数据为不能有null,不能有空值,而这个数据又是一个庞大的对象,对组集合,所以写了个方法来解决这个问题.为了兼具所有的种类类型,封装了方法,代码如下: let obj = ...
- 根据对象属性查找对象或者数组(根据对象属性查找某数组内符合该条件的对象,数组内对象属性check为true的对象,存放到数组内) 滚动轴样式
1.根据对象属性查找某数组内符合该条件的对象. optionComwords:[ {optionName:"名称1", optionCode: '1'}, {optionNam ...
- Array(数组)对象-->数组的删除
1.数组的删除: 用delete操作符删除特定的元素 删除元素的位置只是被留空了,为undefined值 举例:删除下面数组中的第二个元素 var arr = [1,2,3,4,5]; /*删除第二个 ...
- arts打卡 从排序数组中删除重复项
Algorithm 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组 ...
- JavaScript从数组中删除指定值元素的方法
本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...
- javaScript数组循环删除
遍历数组循环的时候,限定条件不要写arr.length,因为数组的长度会随着删除元素的同时减小. 例如,一个原本长度为10的数组,如果采用 for(var i = 0; i< arr.lengt ...
- shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
let a = [1, 2, 3]; let b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1 返回值 从数组中删除的元素; ...
- java数组遍历 删除remove
package com.b; import java.util.ArrayList; //数组遍历删除,添加 public class Core2 { private String name; pri ...
- leetCode----day01---- 从排序数组中删除重复项
需求: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...
随机推荐
- Jmeter参数化3-正则表达式提取
如果你想要将jmeter上个接口返回的参数值传到下个接口请求参去,可用正则表达式来提取传递 1.首先得到jmeter接口的json返回结果 2.组件路径:线程组->右键添加->后置处理器- ...
- 【Vue】代理服务配置
Springboot 后台接口地址 基础路径配置: server: port: 8080 servlet: context-path: /demo 完整路径: localhost:8080/demo ...
- 【Uni-App】UniApp转微信小程序发布应用
参考地址: https://www.jianshu.com/p/a77b73f329e4 第一步,把原始Uni-App项目,转成微信小程序项目 点[发行]-- [小程序-微信(仅适用uni-app)] ...
- [VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建
@ 目录 VS Code扩展机制 项目搭建 创建UI元素 活动栏按钮 主边栏视图 主边栏工具栏按钮 侧边栏右键菜单 编辑器右键菜单 项目地址 [VS Code扩展]写一个代码片段管理插件(一):介绍与 ...
- (待续)【转载】 Deep Reinforcement Learning Doesn't Work Yet(这里有一篇深度强化学习劝退文)
原文: https://www.alexirpan.com/2018/02/14/rl-hard.html ============================================== ...
- Ubuntu系统下python模块graphviz运行报错:graphviz.backend.execute.ExecutableNotFound: failed to execute PosixPath(‘dot‘)
代码中需要运行python模块graphviz,安装: pip install graphviz 运行后报错: graphviz.backend.execute.ExecutableNotFound: ...
- 【模板】最近公共祖先:LCA算法
LCA最近公共祖先 \[\begin{align} 要求 \ 给出一个树和他的根节点\text{root} \quad给出Q个询问 回答\text {LCA}(a,b) \end{align} \] ...
- .NET 8 + Blazor 多租户、模块化、DDD框架、开箱即用
前言 基于 .NET 8 的开源项目,主要使用 WebAPI + Blazor 支持多租户和模块化设计,DDD构建.可以帮助我们轻松地搭建起一个功能完善的Web应用程序.除了帮助你快速构建应用程序之外 ...
- TL431
1. 设置分流电压VKA 由于分流电压调节器是非理想的: 存在动态电阻ZKA,会导致VREF存在一个偏置电压: ( IKA - INOM ) × ZKA 其中,INOM 是 VKA = VREF 测试 ...
- PLC开发没有前景想转行嵌入式,找个培训机构还是自学?
0. 粉丝提问 把粉丝的情况和问题总结起来,主要以下几点: 这位粉丝19年毕业,25岁,专业是是自动化,之前从事plc开发,现在在自学单片机,想转行做Linux相关开发 犹豫是自学还是报线下培训班? ...