我有以下数据。
var Inputdata = {};
Inputdata.firstName = 'Raul'
Inputdata.lastName = 'Peters'
我想检查firstName和lastName(一起)是否已存在于对象数组中。有人可以让我知道如何实现这一目标。
UserData: [0]
firstName: 'Raul'
lastName: 'Peters'
Id: '4'
[1]
firstName: 'Amil'
lastName: 'Rikia'
Id: '5'
[2]
firstName: 'Riya'
lastName: 'Pillai'
Id: '6'
[3]
firstName: 'Natasha'
lastName: 'Shacke'
Id: '6'
[4]
firstName: 'Eric'
lastName: 'Coles'
Id: '6'
如您所见,Raul Peters存在于一个数组中的对象数组中。在这种情况下,我希望输出为真。如果劳尔和彼得斯在不同的对象中,答案应该是假的,因为劳尔和彼得斯不在同一个对象中。任何人都可以让我知道如何实现这个
答案 0 :(得分:2)
只需进行Array.some
检查:
let isPresent = UserData.some(user => user.firstName == 'Raul' && user.lastName == 'Peters')
答案 1 :(得分:0)
使用Array.find
arr.find( function(e){
if(e.firstname == 'Raul' && e.lastname == 'Peters')
return e;
});
答案 2 :(得分:0)
const inputData = {};
inputData.firstName = 'Raul';
inputData.lastName = 'Peters';
const userData = [
{
firstName: 'Raul',
lastName: 'Peters',
Id: '4'
},
{
firstName: 'Amil',
lastName: 'Rikia',
Id: '5'
},
{
firstName: 'Riya',
lastName: 'Pillai',
Id: '6'
},
{
firstName: 'Natasha',
lastName: 'Shacke',
Id: '6'
},
{
firstName: 'Eric',
lastName: 'Coles',
Id: '6'
}
];
此函数接收2个参数:userData
对象数组和inputData
对象。然后,它使用Array.prototype.some()
方法查看userData
数组中是否至少有一个条目是与inputData
对象匹配的对象。
function alreadyExists(userData, inputData) {
return userData.some(entry => entry['firstName'] === inputData['firstName'] && entry['lastName'] === inputData['lastName']);
};
console.log(alreadyExists(userData, inputData));
答案 3 :(得分:0)
如果你想使用下划线或lodash,你可以使用函数_.some。使用内部变量可以得到针元素。
var needle = false;
var has = _.some(UserData, function(v) {
return (v.firstName===Inputdata.firstName && v.lastName===Inputdata.lastName) ? needle = v : false;
});
console.log(has)
console.log(needle)