经过一些网页抓取,我有一个名为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
类型的某个名称是否等于array
中object
s的Name
属性之一。
在我们的函数中,我们将传递一个string
名称和一个object
的array
,具有Name
属性。然后,我们将使用for
循环迭代array
中的每个obj
,然后我们将访问Name
属性并将其与name
参数进行比较。当我们看到它,return true
,但如果我们遍历了每个元素,还没有找到匹配,我们将return false
.