最近寫js也多了,Array中有好多方法不夠用。自己加了些以後還可能用到。<br /><script type="text/javascript"><br /> //找到返回所在索引,不存在返回-1<br /> Array.prototype.index = function (el) {<br />var i = 0;<br />for (var i = 0, len = this.length; i < len; i++) {<br />if (el == this[i]) {<br />return i;<br />}<br />}<br />return -1;<br /> };</p><p> //是否相同,相同返回true,不同返回false<br /> Array.prototype.same = function () {<br />if (this.length == 0) {<br />return true;<br />}<br /> var temp = this.join('').replaceAll(this[0], "");<br /> if (temp != "") {<br /> return false;<br /> } else {<br /> return true<br /> }<br />};<br /> //replaceAll函數參考:http://blog.csdn.net/IBM_hoojo/archive/2010/06/17/5675096.aspx </p><p> //判斷是否存在重複資料<br /> Array.prototype.iterate = function () {<br /> var flag = false;<br />for (var i = 0, len = this.length; i < len; i++) {<br />for (var j = 0; j < len; j++) {<br />if (this[i] == this[j] && i != j) {<br />flag = true;<br />break;<br />}<br />}<br />}<br />return flag;<br /> };</p><p> //傳入一個回調,根據回呼函數條件過濾數組<br /> Array.prototype.filter = function(callback) {<br />var rs = [];<br />for ( var i = 0, length = this.length; i < length; i++ ) {<br />if (callback(this[i], i)) {<br />rs.push(this[i]);<br />}<br />}<br />return rs;<br />};</p><p> window.onload = function () {<br /> var ary = [1, 2, 3, 4, 6, 4, 5];<br /> alert(ary.index(6));<br /> alert(ary.same());<br /> alert(ary.iterate());<br /> var a = ary.filter(function (n, i) {<br /> return n > 4;<br /> });</p><p> alert(a.length + "-" + a[0]);<br /> }<br /> </script>