Как правильно передать имя свойства в функцию isValid(), чтобы я мог проверить, не пусто ли оно? Когда я напрямую проверяю «searchInside.attendeeList», он работает!
function isValid(searchInside, propertyName) {
if (searchInside.propertyName)
console.info("this doesnt work");
if (searchInside.attendeeList)
console.info("this works");
}
var requestBody = {
"meetingType": "Company",
"emailSendingReason": "CREATED",
"attendeeList": [
{
"employeeId": "12345",
"employeeDisplayName": "abc, xyz",
"callInFlag": false,
"infoPackRequiredFlag": true,
"inviteForInfoOnly": true
},
{
"employeeId": "374684678",
"employeeDisplayName": "xyz, poi",
"callInFlag": true,
"infoPackRequiredFlag": true,
"inviteForInfoOnly": false
}
],
"thirdPartyAttendee": {}
};
isValid(requestBody, 'attendeeList');
Попробуйте searchInside.hasOwnProperty(propertyName)
. Объект имеет собственное свойство () проверяет наличие ключа объекта и возвращает логический результат.
function isValid(searchInside, propertyName) {
if (searchInside.hasOwnProperty( propertyName)){
console.info("this works");
} else console.info("this doesn't work");
}
var requestBody = {
"meetingType": "Company",
"emailSendingReason": "CREATED",
"attendeeList": [
{
"employeeId": "12345",
"employeeDisplayName": "abc, xyz",
"callInFlag": false,
"infoPackRequiredFlag": true,
"inviteForInfoOnly": true
},
{
"employeeId": "374684678",
"employeeDisplayName": "xyz, poi",
"callInFlag": true,
"infoPackRequiredFlag": true,
"inviteForInfoOnly": false
}
],
"thirdPartyAttendee": {}
};
isValid(requestBody, 'attendeeList');
Попробуй это. searchInside[propertyName].length !== 0
Вы уже правильно передаете его как строку. Внутри вашей функции является действительным() вы можете ссылаться на нее следующим образом:
function isValid(searchInside, propertyName) {
if (searchInside[propertyName]){
console.info("this works");
}
}
function isValid(searchInside, propertyName) {
if (typeof searchInside[propertyName] !== 'undefined')
console.info("this doesnt work");
if (searchInside.attendeeList)
console.info("this works");
}
да, я использовал hasOwnProperty() для проверки существования свойства. Теперь я хочу проверить, не пусто ли свойство. И для этого я использую
Object.keys(searchInside.propertyName).length !== 0
, для работы которого требуется(searchInside.propertyName)
.