下面是我的JSON数组,我想查找contact
数组是否具有特定值。
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 :(得分:2)
item
没有data.contact
属性而您的data
响应它是一个数组,因此您必须指定一个索引可以使用:
function findContact(data,con){
return data[0].contact.find(item => {
return item == con;
})
}
答案 1 :(得分:0)
您可以将data.contact
用于显示的联系人数据
答案 2 :(得分:0)
使用indexOf
。由于只有一个对象data[0]
用于获取第一个对象,如果它是一个对象数组,则可以使用forEach方法
var 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'
]
}];
function findContact(data, con) {
if (data[0].contact.indexOf(con) !== -1) {
return 'found';
} else {
return 'not found';
}
}
console.log('Contact Name :', findContact(data, 'Brian spilak2'));

答案 3 :(得分:0)
您可以将array#find
与array#includes
一起使用,以检查对象的contact
属性中是否存在名称。
var 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'] } ];
var result = data.find(o => o.contact.includes('Brian spilak2'));
console.log(result);
答案 4 :(得分:0)
这个返回与数组中的名称条件匹配的所有对象。
function filterName(data, srchName) {
return data.filter((obj) => {
return obj.contact.indexOf(srchName) !== -1
})
}
console.log(filterName(data, 'Brian spilak'));