array.filter代码说明
array.filter code explanation
你能解释一下下面的代码会做什么吗?
shapes = shapes.filter( function (current) {
if(current.id == dragID ) {
drag = current;
return false;
}
return true;
} );
shapes是一个包含对象的数组。
正如函数名所示,它过滤掉id等于dragID的形状。此外,它还将id=dragID的形状设置为drag
。
因此,如果您有id为[1,2,4,5]和dragID为3的形状,则函数将返回id为[1,2,4,5]的形状,并将drag
设置为id为3的造型。
这是.splice()的低效实现。想象一下形状是这样的:
[0,1,2,3,4]
运行此代码后,如果"2"处的项目是与dragID匹配的项目,则最终会得到:
drag = 2
shapes = [0, 1, 3, 4]
这个代码来自哪里?作者可能应该得到通知,最好写为:
var drag;
for(var i = shapes.length - 1; i >= 0 && shapes[i].id != dragID; i--)
{}
if (i >= 0)
drag = shapes.splice(i, 1);
如果Array.findIndex有一个polyfill,或者sugarjs在页面上,它可能会更短(通过使用findIndex)。
查看此代码
shapes.filter(function(current) {
...
})
作为CCD_ 3循环。如果功能(电流)返回false
循环停止。例如:
for(i=0;i<shapes.length;i++) {
if(shapes[i].id == dragID) {
drag = shapes[i].id;
break;
}
}
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 对以下代码片段中“this”值更改的说明
- array.filter代码说明
- 电话差距/网络数据库错误代码说明
- AJAX 代码说明
- 十分钟内的 Javascript:此示例代码中发生了什么说明惰性范围
- 给定 JavaScript 代码中返回语句的简要说明
- 关于这个Caja(安全JavaScript)代码的说明
- 想要一些关于异步javascript代码与同步代码的说明
- 此JavaScript代码的说明
- 说明:“功能”;== typeof代码
- 代码说明:处理最小值和最大值- Javascript
- JavaScript代码说明:(e &&E.target) ||(窗口.事件,,window.event.srcElem
- 什么是一个很好的例子,说明在不使用jQuery的情况下需要特定于浏览器的代码
- javascript代码说明
- 需要JavaScript嵌套命名空间生成代码说明
- 图像滑块代码,任何人都可以详细说明
- 代码说明滚动顶部