if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
"use strict";
if (this == null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n != n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n != 0 && n != Infinity && n != -Infinity) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
}
我不会告诉你有这么一个网站的:http://phpjs.org/ 哈哈
用 github 上的项目来回答问题。 欢迎关注 github那些事儿
php.js implements PHP functions in JavaScript。github 地址:https://github.com/kvz/phpjs
indexOf在ECMAScript 5th中是有的,参考:https://developer.mozilla.org/en-US/d...
其实不止indexOf,lastIndexOf,filter,forEach,every,map,some等等在ECMAScript 5th 中都有实现, 各个javascript库也有相关的代码,可以去看看。
jQuery中有类似的函数:http://docs.jquery.com/Utilities/jQue...
它的代码如下:
underscore.js 是一个非常强大的js库,增添了很多js强化功能,同时也是很多js开源项目的基础库——例如著名的mvc框架Backbone.js。
其中有求元素在array中的索引的方法
http://underscorejs.org/#indexOf
如果你的数组里都是纯数字的话,那么告诉你一个比较简便的方法
模拟实现哦