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

1、我不会告诉你有这么一个网站的:http://phpjs.org/ 哈哈

2、

php.js implements PHP functions in JavaScript。github 地址:https://github.com/kvz/phpjs

3、

indexOf在ECMAScript 5th中是有的,参考:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

 

  1. if (!Array.prototype.indexOf) { 
  2.  
  3.     Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { 
  4.  
  5.         "use strict"
  6.  
  7.         if (this == null) { 
  8.  
  9.             throw new TypeError(); 
  10.  
  11.         } 
  12.  
  13.         var t = Object(this); 
  14.  
  15.         var len = t.length >>> 0; 
  16.  
  17.         if (len === 0) { 
  18.  
  19.             return -1; 
  20.  
  21.         } 
  22.  
  23.         var n = 0; 
  24.  
  25.         if (arguments.length > 1) { 
  26.  
  27.             n = Number(arguments[1]); 
  28.  
  29.             if (n != n) { // shortcut for verifying if it's NaN 
  30.  
  31.                 n = 0; 
  32.  
  33.             } else if (n != 0 && n != Infinity && n != -Infinity) { 
  34.  
  35.                 n = (n > 0 || -1) * Math.floor(Math.abs(n)); 
  36.  
  37.             } 
  38.  
  39.         } 
  40.  
  41.         if (n >= len) { 
  42.  
  43.             return -1; 
  44.  
  45.         } 
  46.  
  47.         var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); 
  48.  
  49.         for (; k < len; k++) { 
  50.  
  51.             if (k in t && t[k] === searchElement) { 
  52.  
  53.                 return k; 
  54.  
  55.             } 
  56.  
  57.         } 
  58.  
  59.         return -1; 
  60.  
  61.     } 

其实不止indexOf,lastIndexOf,filter,forEach,every,map,some等等在ECMAScript 5th 中都有实现, 各个javascript库也有相关的代码,可以去看看。

举一反三