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

javascript custom method for checking if element exists in array

本文关键字:元素 javascript 自定义方法 存在 是否 检查 数组 用于      更新时间:2023-09-26

我是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不是函数我想我甚至没有丢失任何分号。

其他信息:typeof customFindProperty返回"功能"

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

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

return arrayToFind[elementIndex]

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

arrayToFind-这是一个函数吗?事实并非如此,而你正试图称之为失败。

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

arrayToFind[elementIndex];

FYI,您可以进一步简化。。

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;

我同意Matt的观点。我认为问题出在功能的名称上

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

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