js 过滤 json 数据

embedded/2024/10/21 10:11:48/

js 过滤 json 数据

  • 一、一维数组过滤
    • 1、filter
    • 2、map
  • 二、复杂数组过滤
  • 三、树形数据过滤
  • 四、过滤附件数组 — filter、map、findIndex


一、一维数组过滤

1、filter

javascript">let arr = [{id: 1,name: "张三",age: 18},{id: 2,name: "李四",}
]
arr = arr.filter(item => !!item.age);
console.log(arr) // [{id: 1,name: "张三",age: 18}]

2、map

javascript">let arr = [{id: 1,name: "张三",},{id: 2,name: "李四",}
]
let ids = arr.map(item => item.id);
console.log(ids) // [1,2]

二、复杂数组过滤

map、filter 结合使用

javascript">/**
* sub.id: 123
* row.id: "id-123"
* 输出sub.id和row.id不同的项
*/
let new_arr = old_arr.map((item, index) => {if (!!item.children)item.children = item.children.filter(sub => sub.id !== row.id)return item;
}).filter(item => item.children && item.children.length > 0);

三、树形数据过滤

递归

javascript">// 过滤有文件的数据
filterTree(tree) {const result = [];for (const item of tree) {const res = this.heplFun(item);if (res) {result.push(res);}}return result;
},
// 过滤文件的条件
heplFun(item) {// 判断条件地方if (item.pageCount) {return item;}const curent = { ...item, children: [] };if (item.children && item.children.length > 0) {for (const child of item.children) {const res2 = this.heplFun(child);if (res2) {curent.children.push(res2);}}}return curent.children.length > 0 ? curent : null;
},

四、过滤附件数组 — filter、map、findIndex

javascript">/**
* 给fileList数组的url加api前缀
* previewSrcList 过滤fileList的url组成新数组
* Index 附件预览时图片地址在previewSrcList数组中的下标
*/
fileList.filter(item => {return item.url = item.url.indexOf('/Api') > -1 ? item.url : '/Api' + item.url
})
previewSrcList = fileList.map(item => item.url)
Index = previewSrcList.findIndex(item => item === file.url);


http://www.ppmy.cn/embedded/6561.html

相关文章

BaiChuan13B-GPTQ量化详解

知识要点: 1、按照网上搜索的一些代码,如使用auto_gptq原生库进行训练后量化,可能会正常量化,但是在线推理时会出现如找不到bin文件或者tf文件,即模型权重文件,所以和网上大部分代码不同的地方在于&#xf…

【软件工程与实践】(第四版)第6章习题答案详解

第6章 一、填空题二、选择题三、简答题四、实践题 一、填空题 (1) 编程语言是人与计算机交流的 工具。 (2) 从语言层次上,编程语言可以分为 低级语言 和 高级语言 两种类型。 (3) 1960年代出现…

《设计模式之美》第一章 总结

《设计模式之美》第一章 总结 第一章 概述 1.1 为什么学习代码设计 编写高质量的代码应对复杂代码的开发程序员的基本功职业发展的必备技能 1.2 如何评价代码的质量 1.2.1 可维护性 可维护性代码的特性:代码简洁、可读性好、可扩展性好代码分层结构清晰、模块化…

信道的题目

调制信道分为恒参信道和随参信道。恒参信道举例:各种有线信道;中长波地波传播、卫星中继。随参信道举例:短波电离层反射信道、各种散射信道、移动通信信道。狭义信道分为有线信道和无线信道。广义信道包含调制信道和编码信道。调制信道中不包…

java怎么创建字符串数组(java创建一个string数组)

java中如何创建字符串数组? 字符串数组的创建:String a new String(Java);不过推荐用ArrayList strArray new ArrayList (); 比较灵活。 String[][] snew String[60][3];这和60个数组是一样的,编程不能太死了。 例…

iOS重签名-超详细,附排错

文章目录 重签名步骤步骤 1: 准备必要的材料步骤 2: 解压 .ipa 文件步骤3:将 Provisioning Profile 复制到 Payload 目录步骤 4: 移除原来的签名步骤 5: 使用新的证书和 Provisioning Profile 进行重签名步骤 6: 重新打包 .ipa 文件步骤 7: 安装和测试得到provisioning file和…

【Cookie,Session,Token,JWT的区别】

一、Cookie Cookie 是在 HTTP 协议下,维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器上的小文本数据文件,它可以包含有关用户的信息。cookie是不可跨域的,每个cookie都会绑定一个单一的域名,并只能在指…

08.MySQL大小写

MySQL大小写 1.默认情况 windows:啥都不区分大小写linux: 数据库名、表名、表的别名、变量名是严格区分大小写的关键字、函数名称在 SQL 中不区分大小写列名(或字段名)与列的别名(或字段别名)在所有的情况…