在数组内的对象属性上相等

is equal on object property inside array

本文关键字:属性 对象 数组      更新时间:2023-09-26

我有对象

var emailData = new {};
emailData.Id;
emailData.EmailAddress;

在代码的后面,我将用emailData对象填充数组

 var emailDataArr = new Array();
 emailDataArr.push(..someobject...);

如何检查emailDataArr数组中属性EmailAddress上的任何对象是否等于某个字符串?

您可以通过使用Array.prototype.some来获得它。这里有一个例子:

function hasAddress( array, address ) {
    return array.some(function(data) {
        return data.EmailAddress === address;
    });
}
var emailDataArr = new Array();
emailDataArr.push(/* Data */);
console.log( hasAddress( emailDataArr, 'SomeString' ) );

您可以转到http://jsfiddle.net/du2b6r1y/并查看实例。

//https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/create
var emailData = {}; //Please use Object.create instead of new {}; if that not possible you simple should use {} 
// you can also 
var emailDataArr = [
    {
        Id: 1,
        EmailAdress : "nadf@asdfa"
    },
    {
        Id: 2,
        EmailAdress : "adfasd@asdfa"
    },
    {
        Id: 3,
        EmailAdress : null
    }
]; //please avoid new in all you javascript code if possible
var filter = emailDataArr.filter(function(email) {
return typeof email.EmailAdress === "string";
}); 
console.log(filter);
//you will get only emails that are strings
//[object, object];
//or you can go over each of them and compare them
emailDataArr.forEach(function(email) {
    if(typeof email.EmailAdress === "string") {
        //do your thing
        console.log("is a string");
    }
});