如何检查JavaScript对象中是否存在两个值或仅存在一个值
我有一个目标如下:如何检查JavaScript对象中是否存在两个值或仅存在一个值,javascript,angularjs,object,Javascript,Angularjs,Object,我有一个目标如下: {"user": { "name": "Harry Peter", "phoneNumber": "12345", "products": [ { "type": "card", "accountId": "5299367", }, { "type": "Loan", "accountId": "5299365"
{"user": {
"name": "Harry Peter",
"phoneNumber": "12345",
"products": [
{
"type": "card",
"accountId": "5299367",
},
{
"type": "Loan",
"accountId": "5299365",
},
{
"type": "card",
"accountId": "8299388",
},
]}
}
我需要了解的是,用户是否同时拥有贷款和信用卡,或者只是贷款作为用户产品
javascript或angular中是否有任何内置函数可以找到它
有人对如何做有什么建议吗。请帮助。您可以循环查看
产品
并获得独特的类型
var数据={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[{
“类型”:“卡片”,
“accountId”:“5299367”,
}, {
“类型”:“贷款”,
“帐户ID”:“5299365”,
}, {
“类型”:“卡片”,
“accountId”:“8299388”,
}, ]
}
}
var结果=data.user.products.reduce(函数(p,c){
如果(p.indexOf(c.type)您可以循环产品
并获得唯一的类型
var数据={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[{
“类型”:“卡片”,
“accountId”:“5299367”,
}, {
“类型”:“贷款”,
“帐户ID”:“5299365”,
}, {
“类型”:“卡片”,
“accountId”:“8299388”,
}, ]
}
}
var结果=data.user.products.reduce(函数(p,c){
如果(p.indexOf(c.type)您可以尝试以下内容
var obj={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[{
“类型”:“卡片”,
“accountId”:“5299367”,
}, {
“类型”:“贷款”,
“帐户ID”:“5299365”,
}, {
“类型”:“卡片”,
“accountId”:“8299388”,
}, ]
}
};
var结果={};
对象用户产品减少(功能(旧值,项目){
oldval[item.type]=true;
返回oldval;
},结果);
console.log(results.card&&results.Loan);//为true
//此外,结果包含有关类型的唯一值的所有信息,因此,可以根据需要使用这些信息
您可以尝试以下操作
var obj={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[{
“类型”:“卡片”,
“accountId”:“5299367”,
}, {
“类型”:“贷款”,
“帐户ID”:“5299365”,
}, {
“类型”:“卡片”,
“accountId”:“8299388”,
}, ]
}
};
var结果={};
对象用户产品减少(功能(旧值,项目){
oldval[item.type]=true;
返回oldval;
},结果);
console.log(results.card&&results.Loan);//为true
//此外,结果包含有关类型的唯一值的所有信息,因此,可以根据需要使用
您可以使用过滤器
数组方法
var obj={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[
{
“类型”:“卡片”,
“accountId”:“5299367”,
},
{
“类型”:“贷款”,
“帐户ID”:“5299365”,
},
{
“类型”:“卡片”,
“accountId”:“8299388”,
},
]
}
};
var贷款=对象用户产品过滤器(函数(产品){
退货产品.类型==“贷款”;
});
console.log(“贷款:+Loans.length”);
//假设用户有贷款或信用卡,您可以
//现在很容易发现用户是否只有以下贷款:
if(loans.length==obj.user.products.length){
log(“用户只有贷款”);
}否则{
var卡=obj.user.products.length-loans.length;
console.log(“用户拥有“+贷款.长度+”贷款和“+卡+”卡”);
}
您可以使用过滤器
数组方法
var obj={
“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[
{
“类型”:“卡片”,
“accountId”:“5299367”,
},
{
“类型”:“贷款”,
“帐户ID”:“5299365”,
},
{
“类型”:“卡片”,
“accountId”:“8299388”,
},
]
}
};
var贷款=对象用户产品过滤器(函数(产品){
退货产品.类型==“贷款”;
});
console.log(“贷款:+Loans.length”);
//假设用户有贷款或信用卡,您可以
//现在很容易发现用户是否只有以下贷款:
if(loans.length==obj.user.products.length){
log(“用户只有贷款”);
}否则{
var卡=obj.user.products.length-loans.length;
console.log(“用户拥有“+贷款.长度+”贷款和“+卡+”卡”);
}
相同的迭代解决方案,但如果类型
与贷款
不同,则会立即给出
var obj={“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[
{
“类型”:“卡片”,
“accountId”:“5299367”,
},
{
“类型”:“贷款”,
“帐户ID”:“5299365”,
},
{
“类型”:“卡片”,
“accountId”:“8299388”,
},
]}
};
功能有不同的产品(产品){
var-isDiff=false;
产品.forEach(功能(产品){
isDiff=product.type!=“Loan”;//检查类型是否为Loan
});
返回isDiff;
}
console.log(拥有不同的产品(obj.user.products))
相同的迭代解决方案,但如果类型与贷款不同,则会立即提供
var obj={“用户”:{
“姓名”:“哈里·彼得”,
“电话号码”:“12345”,
“产品”:[
{
“类型”:“卡片”,
“accountId”:“5299367”,
},
{
“类型”:“贷款”,
“帐户ID”:“5299365”,
},
{
“类型”:“卡片”,
“accountId”:“8299388”,
},
]}
};
功能有不同的产品(产品){
var-isDiff=false;
产品.forEach(功能(产品){
isDiff=product.type!=“Loan”;//检查类型是否为Loan
});
返回isDiff;
}
log(拥有不同的产品(obj.user.p