Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查JavaScript对象中是否存在两个值或仅存在一个值_Javascript_Angularjs_Object - Fatal编程技术网

如何检查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