检查对象元素是否存在于数组中

时间:2015-07-25 21:44:21

标签: javascript node.js

在网页抓取之后,我有一组名为someObjArr的名称。

Array看起来像这样: [ { 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 fir数组中的每个项目。

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样?

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的名称是否等于Nameobject的{​​{1}}个属性之一。

在我们的功能中,我们会传递array名称和string arrayobject属性。然后,我们将使用Name循环遍历obj中的每个array,然后我们将访问for属性并将其与{{1}进行比较参数。当我们看到它时,Name,但如果我们遍历每个元素并且没有找到匹配项,我们就会name