猿问

各位有什么好办法来实现这个功能吗?求高手指点

就是判断一个元素是否存在于数组中的函数,既然js里string都有indexOf函数,为什么不在Array对象里设置一个这样的函数呢,其实就用indexOf这个思想挺好的,不知道制定JS标准的人是基于什么考虑,把这样一个如此常用的功能没考虑在内的。


守候你守候我
浏览 119回答 3
3回答

qq_遁去的一_1

jQuery中有类似的函数:它的代码如下:function&nbsp;inArray(needle,&nbsp;haystack)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;length&nbsp;=&nbsp;haystack.length;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(haystack[i]&nbsp;==&nbsp;needle)&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; }

小怪兽爱吃肉

如果你的数组里都是纯数字的话,那么告诉你一个比较简便的方法//&nbsp;比如判断2312是否在这个数组中('|'&nbsp;+&nbsp;[2312,3331,423456].join('|')&nbsp;+&nbsp;'|').indexOf('|'&nbsp;+&nbsp;2312&nbsp;+&nbsp;'|')

温温酱

indexOf在ECMAScript 5th中是有的,if&nbsp;(!Array.prototype.indexOf)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;Array.prototype.indexOf&nbsp;=&nbsp;function&nbsp;(searchElement&nbsp;/*,&nbsp;fromIndex&nbsp;*/&nbsp;)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"use&nbsp;strict";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this&nbsp;==&nbsp;null)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;TypeError(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;t&nbsp;=&nbsp;Object(this);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;len&nbsp;=&nbsp;t.length&nbsp;>>>&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(len&nbsp;===&nbsp;0)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;n&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(arguments.length&nbsp;>&nbsp;1)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;Number(arguments[1]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;!=&nbsp;n)&nbsp;{&nbsp;//&nbsp;shortcut&nbsp;for&nbsp;verifying&nbsp;if&nbsp;it's&nbsp;NaN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if&nbsp;(n&nbsp;!=&nbsp;0&nbsp;&&&nbsp;n&nbsp;!=&nbsp;Infinity&nbsp;&&&nbsp;n&nbsp;!=&nbsp;-Infinity)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;(n&nbsp;>&nbsp;0&nbsp;||&nbsp;-1)&nbsp;*&nbsp;Math.floor(Math.abs(n)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;>=&nbsp;len)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;k&nbsp;=&nbsp;n&nbsp;>=&nbsp;0&nbsp;?&nbsp;n&nbsp;:&nbsp;Math.max(len&nbsp;-&nbsp;Math.abs(n),&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;&nbsp;k&nbsp;<&nbsp;len;&nbsp;k++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(k&nbsp;in&nbsp;t&nbsp;&&&nbsp;t[k]&nbsp;===&nbsp;searchElement)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;k; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;}其实不止indexOf,lastIndexOf,filter,forEach,every,map,some等等在ECMAScript 5th 中都有实现。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答