javascript函数inArray

Rob*_*ohr 11 javascript arrays

我需要一个可以接受字符串和数组的javascript函数,如果该字符串在数组中,则返回true.

 function inArray(str, arr){
   ...
 }
Run Code Online (Sandbox Code Playgroud)

警告:它不能使用任何javascript框架.

gna*_*arf 18

你可以制作一个数组原型函数ala:

Array.prototype.hasValue = function(value) {
  var i;
  for (i=0; i<this.length; i++) { if (this[i] === value) return true; }
  return false;
}

if (['test'].hasValue('test')) alert('Yay!');
Run Code Online (Sandbox Code Playgroud)

注意使用'==='代替'=='你可以改变它,如果你需要更少的特定匹配...否则[3] .hasValue('3')将返回false.

  • 在for(...)中包含var在逻辑上是误导性的,因为它表明var的范围仅在for循环内(对于多语言程序员).但是,范围是整个功能.此外,在其范围的最高点声明变量通常被认为是一种良好的做法,也是避免范围冲突的好方法. (3认同)

Mat*_*hew 8

像这样的东西?

function in_array(needle, haystack)
{
    for(var key in haystack)
    {
        if(needle === haystack[key])
        {
            return true;
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

  • 我可能不应该使用(键入数组).如果有人扩展了Array对象,那么它也将迭代新的方法/属性(而不仅仅是数组值). (5认同)