用于检查元素是否存在于数组中的javascript自定义方法

时间:2012-09-13 11:54:08

标签: javascript arrays

我是javascript的新手,我刚刚完成了一些数组方法,并想玩它,我坚持使用我编写的代码:

function customFindProperty(arrayToFind,requiredItem){

  var elementIndex = 0;

  function isRequiredItem(item){
    elementIndex++;
    return item==requiredItem;
  }

  elementFound = arrayToFind.some(isRequiredItem);

  if(elementFound){
    return arrayToFind(elementIndex);
  } else{
    alert("Element Not Found");
    return undefined;
  }
}
var myElement = customFindProperty([1,2,3,4,5],3);

这给了我错误 TypeError:对象不是函数我想我甚至都没有丢失任何分号。

其他信息: typeof customFindProperty返回“function”

注意的 不知道如何关闭这个问题我发现答案是一个简单的输入错误我试图返回arrayToFind(elementIndex)而不是arrayToFind [elementIndex]

5 个答案:

答案 0 :(得分:0)

return arrayToFind [elementIndex]

你使用parens,就像你在调用一个函数一样。方形手镯用于阵列访问。

答案 1 :(得分:0)

arrayToFind - 这是一个功能吗?它不是,你试图打电话而且它失败了。

顺便说一下,你在这里使用它 - arrayToFind.some,我们可以假设它是一个数组,你需要用方括号对其进行索引才能返回价值,如:

arrayToFind[elementIndex];

答案 2 :(得分:0)

仅供参考,你可以更进一步..

var arr = [1,2,3,4,5];

var itemToFind = 3;

var indexOfMyItem = arr.indexOf(itemToFind); // -1 would mean not found

所以归结为 -

 return indexOfMyItem > -1 ? arr[itemToFind] : undefined;

答案 3 :(得分:0)

您正在使用括号而不是方括号来进行数组访问。 arrayToFind(elementIndex);应为arrayToFind[elementIndex];

答案 4 :(得分:0)

我同意马特的观点。我认为问题是函数的名称

您的函数名称为customFindProperty,而您正在调用customFindPropety(请注意属性的r。)

如果你改变这个,下一个问题是'some',因为arrayToFind不是一个函数