为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 和 3 参数过滤器

Javascript 和 3 参数过滤器

慕少森 2022-11-27 17:25:35
我试图理解filterJavascript 中的 3 参数函数。这段代码在做什么?(我目前正在重构系统中的现有代码。)docs = _.cloneDeep(docs.filter((v, i, a) => a.findIndex(t => (t.documentNumber === v.documentNumber)) === i));
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

回调filter给定三个参数,当前元素、索引和原始数组。

您提供的代码创建了一个具有独特属性的数组documentNumber,对于每个元素,它查找第一个与它具有相同 documentNumber 的元素的索引;如果找到的元素的索引与当前索引相同,则该元素是该属性在数组中的第一次出现,只有到那时回调才会返回 true 并保留该元素。它将删除重复项。

也可以看看:Array#findIndex


查看完整回答
反对 回复 2022-11-27
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

它过滤到唯一的 documentNumber 的第一个实例


const docs = [

  { documentNumber: 1 },

  { documentNumber: 1 },

  { documentNumber: 2 },

  { documentNumber: 3 },

  { documentNumber: 4 },

  { documentNumber: 4 },

  { documentNumber: 4 },

  { documentNumber: 5 },

  { documentNumber: 6 },

  { documentNumber: 7 },

  { documentNumber: 7 },

  { documentNumber: 1 },

  { documentNumber: 8 }

];


let results = docs.filter((v, i, a) => a.findIndex(t => (t.documentNumber === v.documentNumber)) === i);

console.log(results);


查看完整回答
反对 回复 2022-11-27
  • 2 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号