Js/Ts 数组的filter方法

背景

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

实践

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

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; } });

这不就是我要找的嘛!

嗯,真香~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值