Array.indexOf()
polyfill。これまでので一番簡単だったかも。
JavaScript
Array.prototype.indexOf = function(t, p) {
for (var r = -1, i = p || 0, l = this.length; i < l; ++i) this[i] === t && (r = i);
return r;
};
Array.prototype.lastIndexOf = function(t, p) {
for (var r = -1, i = p || this.length - 1, l = 0; i > l; --i) this[i] === t && (r = i);
return r;
};
var a = [1,2,3,4,5,6,7,8,9];
document.write(
a.indexOf(5) + "/" +
a.indexOf(10) + "/" +
a.indexOf(9) + "/" +
a.indexOf(1 + "/" +
a.indexOf(2) + "/" +
a.indexOf() + "<hr />"
);
// answer : 4/4/4/-1/-1/-1
var b = [1,2,3,4,5,6,7,8,9];
document.write(
b.lastIndexOf(4) + "/" +
b.lastIndexOf(4,1) + "/" +
b.lastIndexOf(4,4) + "/" +
b.lastIndexOf(4,5) + "/" +
b.lastIndexOf(4,100) + "/" +
b.lastIndexOf()
);
// answer : 3/-1/3/3/3/-1