-1

我是 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: Object is not a function我想我什至没有遗漏任何分号。

附加信息: typeof customFindProperty返回“功能”

注意 不知道如何结束这个问题我找到了答案这是一个简单的输入错误我试图返回 arrayToFind(elementIndex) 而不是 arrayToFind[elementIndex]

4

5 回答 5

0

返回 arrayToFind[elementIndex]

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

于 2012-09-13T11:59:38.320 回答
0

arrayToFind- 这是一个功能吗?它不是,你试图调用它并且它失败了。

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

arrayToFind[elementIndex];
于 2012-09-13T11:59:47.450 回答
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;
于 2012-09-13T11:59:54.357 回答
0

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

于 2012-09-13T12:06:32.193 回答
0

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

您的函数名称是customFindProperty并且您正在调用customFindPropety(注意 r 属性)。

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

于 2012-09-13T12:06:46.077 回答