检查数组中是否存在object元素



经过一些网页抓取,我有一个名为someObjArr的名称数组。

数组看起来像这样:[ { name: Joe 'Panik' } ]

我想检查这个数组中是否存在一个名字,下面是我的代码:

例如:

        var someObjArr = [];
        var filter = $('a.player-link').each(function(i, element) {
        var text = $(this).text();
        if(someObjArr[i] == undefined){
            someObjArr[i] = {};
        };
        someObjArr[i].name = text;
        function nameExistsInArray(name, array) {
            for(var i = 0; i < array.length; i++)(function(obj) {
                if(obj.name == name) {
                    return true;
                }
            })
            return false;
        };
            var exists = nameExistsInArray('Joe Panik', [{ name: 'Joe Panik' }]);
            console.log(exists);
        });

此脚本的输出对数组中的每个项返回false。

这样怎么样?

function nameExistsInArray(name, array) { 
  for(var i = 0; i < array.length; i++) {
    if(array[i].Name == name) {
      return true;
    }
  }
  return false;
};

用法:

var exists = nameExistsInArray('Joe Panik', [{ Name: 'Joe Panik' }]);

解释:您想确定string类型的某个名称是否等于arrayobject s的Name属性之一。

在我们的函数中,我们将传递一个string名称和一个objectarray,具有Name属性。然后,我们将使用for循环迭代array中的每个obj,然后我们将访问Name属性并将其与name参数进行比较。当我们看到它,return true,但如果我们遍历了每个元素,还没有找到匹配,我们将return false .

最新更新