大佬教程收集整理的这篇文章主要介绍了Javascript过滤器vs地图问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我把代码中的值放在一起,看看FireBug中的结果.
这是代码:
var _vec = this.vec; min_x = Math.min.apply(Math,_vec.filter(function(el){ return el["x"]; })); min_y = Math.min.apply(Math,_vec.map(function(el){ return el["x"]; }));
映射版本返回正确的结果.然而,过滤的版本返回NaN.打破它,逐步通过并最终检查结果,内部函数会显示_vec的x属性,但是从过滤器返回的实际数组是未过滤的_vec.
我相信我的使用过滤器是正确的 – 任何人可以看到我的问题吗?
这是一个简单的测试:
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>S:GTC Map Test</title> </head> <body> <script type="text/javascript"> function vector(x,y,z) { this.x = x; this.y =y; this.z=z; } var vec = []; vec.push(new vector(1,1,1)); vec.push(new vector(2,2,2)); vec.push(new vector(2,3,3)); var _vec = vec; min_x = Math.min.apply(Math,_vec.map(function(el){ return el["x"]; })); document.write("<br>filter = " + min_X); document.write("<br>map = " + min_y); </script> </body> </html>
由于您没有从内部函数返回一个布尔值,所以该值将转换为布尔值,因此将对象引用转换为true.因此,它返回一个包含原始数组中所有项目的新数组.
过滤方法与map方法不同. map方法用于转换数组的每个项目,而使用过滤器方法来选择数组的某些项目.比较方法之间的性能是有道理的,因为只有其中一个执行您想要的操作.
以上是大佬教程为你收集整理的Javascript过滤器vs地图问题全部内容,希望文章能够帮你解决Javascript过滤器vs地图问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。