素材巴巴 > 程序开发 >

Js/Ts 数组的filter方法

程序开发 2023-09-21 11:56:53

背景

最近在写一个自动化生成/绑定/更新脚本的插件,有一个功能,我需要找出预制体/场景以及对应脚本中已有的属性,并且对属性进行对比,找出已经删除的属性和要添加属性。

实践

本来想着双层数组遍历,分别找出删除的和要添加的属性

let omitProps = [];
 let deletedProps = [];
 for (let i = 0; i < arrTsProps.length; i++) {let element = arrTsProps[i];if (arrPrefabProps.indexOf(element) === -1) {omitProps.push(element);}}
 for (let i = 0; i < arrPrefabProps.length; i++) {let element = arrPrefabProps[i];if (arrTsProps.indexOf(element) === -1) {deletedProps.push(element);}
 }
 

btw,功能是实现了,这TM代码又臭又长,不能忍!

于是去查了一下文档,发现了这个神器 filter
菜鸟教程 JavaScript Array filter() 方法的介绍

菜鸟教程 JavaScript Array filter() 方法

直接上代码

// 预制体/场景上要添加的属性
 let omitProps = arrTsProps.filter((element) => { if (arrPrefabProps.indexOf(element) === -1) { return element; } });
 // 预制体/场景上已经删除的属性
 let deletedProps = arrPrefabProps.filter((element) => { if (arrTsProps.indexOf(element) === -1) { return element; } });
 

这不就是我要找的嘛!

嗯,真香~


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。