Javascript 如何查找包含嵌套对象元素的JSON数组

Javascript 如何查找包含嵌套对象元素的JSON数组,javascript,json,Javascript,Json,下面是我的JSON数组,我想知道contactarray是否有特定值 data = [ { _id: 5a67294923aba20014e2fe5a, customerLocation: '473 Victoria St, Singapore 198371', customerName: 'UNIVERSAL', id: 'UNI3L2', customerType: 'customer',

下面是我的JSON数组,我想知道
contact
array是否有特定值

 data =  [ { _id: 5a67294923aba20014e2fe5a,
            customerLocation: '473 Victoria St, Singapore 198371',
            customerName: 'UNIVERSAL',
            id: 'UNI3L2',
            customerType: 'customer',
            contact:
             [ 'Brian spilak',
               'Brian spilak2',
               'Brian spilak3',
               'Brian spilak4',
               'Brian spilak5' ] } ];
JAVASCRIPT

function findContact(data,con){
           return data.contact.find(item => {
            return item.data.contact == con;
        })
     }    

    console.log('Contact Name :', findContact(data,'Brian spilak2'));

您可以使用
数据。联系人
用于显示的联系人数据

您可以使用
数据。联系人
用于显示的联系人数据

使用
索引
。由于它只是一个对象,因此
数据[0]
用于获取第一个对象,如果它是一个对象数组,则可以用于每个方法

var数据=[{
_id:'5a67294923aba20014e2fe5a',
客户地址:“新加坡维多利亚街473号,198371”,
客户名称:“通用”,
id:'UNI3L2',
customerType:“customer”,
联系人:[“Brian spilak”,
“Brian spilak2”,
“Brian spilak3”,
“Brian spilak4”,
“Brian spilak5”
]
}];
函数findContact(数据,con){
如果(数据[0]。联系。indexOf(con)!=-1){
返回“已找到”;
}否则{
返回“未找到”;
}
}

log('Contact Name:',findContact(数据,'Brian spilak2')
使用
indexOf
。因为它只是一个对象
数据[0]
用于获取第一个对象,如果它是对象数组,则可以使用forEach方法

var数据=[{
_id:'5a67294923aba20014e2fe5a',
客户地址:“新加坡维多利亚街473号,198371”,
客户名称:“通用”,
id:'UNI3L2',
customerType:“customer”,
联系人:[“Brian spilak”,
“Brian spilak2”,
“Brian spilak3”,
“Brian spilak4”,
“Brian spilak5”
]
}];
函数findContact(数据,con){
如果(数据[0]。联系。indexOf(con)!=-1){
返回“已找到”;
}否则{
返回“未找到”;
}
}
log('Contact Name:',findContact(数据,'Brian spilak2')
您可以使用
数组#查找
数组#包含
来检查对象的
联系人
属性中是否存在名称

var data=[{{u id:'5A67294923ABA2002014E2FE5A',客户地址:'473 Victoria St,Singapore 198371',客户名称:'UNIVERSAL',id:'UNI3L2',客户类型:'customer',联系人:['Brian spilak','Brian spilak2','Brian spilak3','Brian spilak4','Brian spilak5'];
var result=data.find(o=>o.contact.includes('Brian spilak2');
控制台日志(结果)
您可以使用
数组#查找
数组#包含
来检查对象的
联系人
属性中是否存在名称

var data=[{{u id:'5A67294923ABA2002014E2FE5A',客户地址:'473 Victoria St,Singapore 198371',客户名称:'UNIVERSAL',id:'UNI3L2',客户类型:'customer',联系人:['Brian spilak','Brian spilak2','Brian spilak3','Brian spilak4','Brian spilak5'];
var result=data.find(o=>o.contact.includes('Brian spilak2');

控制台日志(结果)
没有
数据。请联系
属性,您的
数据
将其作为数组响应,因此您必须指定一个索引,以便使用:

function findContact(data,con){
           return data[0].contact.find(item => {
            return item == con;
        })
     }    

没有
数据。请联系
属性,然后您的
数据
将其作为数组响应,因此您必须指定一个索引来处理:

function findContact(data,con){
           return data[0].contact.find(item => {
            return item == con;
        })
     }    

这个函数返回数组中与名称条件匹配的所有对象

function filterName(data, srchName) {
   return data.filter((obj) => {
        return obj.contact.indexOf(srchName) !== -1
    })
}

console.log(filterName(data, 'Brian spilak'));

这个函数返回数组中与名称条件匹配的所有对象

function filterName(data, srchName) {
   return data.filter((obj) => {
        return obj.contact.indexOf(srchName) !== -1
    })
}

console.log(filterName(data, 'Brian spilak'));

@乔·汤姆帮助比;)替换item.data.contact==con;仅使用item==con;不清楚你想找什么。数据是否有多个客户对象?你是在寻找一个特定的客户吗?还是总是只有一个对象?@Mark\M No只有一个客户对象和一个联系人对象。我想知道联系人对象是否有特定值。@joe tom help than;)替换item.data.contact==con;仅使用item==con;不清楚你想找什么。数据是否有多个客户对象?你是在寻找一个特定的客户吗?还是总是只有一个对象?@Mark\M No只有一个客户对象和一个联系人对象。我想知道联系人对象是否有特定值。为什么要使用
some()
而不仅仅是从
includes()
返回的布尔值?这里使用some来迭代数组。@Hassaniam如果我要返回找到的对象怎么办?我已经更新了解决方案以返回完整的对象。为什么要使用
some()
而不仅仅是从
includes()
返回的布尔值?这里使用一些布尔值来迭代数组。@Hassaniam如果我想返回找到的对象怎么办?我已经更新了解决方案以返回完整的对象。
数据
是一个数组。它没有
联系人
属性。
数据
是一个数组。它没有
联系人
属性。