#javascript
#javascript
Вопрос:
Как правильно передать propertyName функции isValid(), чтобы я мог проверить, не пусто ли оно? Когда я напрямую проверяю ‘searchInside.attendeeList’, это работает!
function isValid(searchInside, propertyName) {
if(searchInside.propertyName)
console.log("this doesnt work");
if(searchInside.attendeeList)
console.log("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');
Ответ №1:
Вы уже правильно передаете его в виде строки. Внутри вашей функции isValid() вы можете ссылаться на нее следующим образом:
function isValid(searchInside, propertyName) {
if(searchInside[propertyName]){
console.log("this works");
}
}
Ответ №2:
Попробуйте searchInside.hasOwnProperty(propertyName)
. Object hasOwnProperty() проверяет наличие ключа объекта и возвращает логический результат.
function isValid(searchInside, propertyName) {
if(searchInside.hasOwnProperty( propertyName)){
console.log("this works");
} else console.log("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');
Комментарии:
1. да, я использовал hasOwnProperty() для проверки наличия свойства. Теперь я хочу проверить, не является ли свойство пустым. И для этого я использую
Object.keys(searchInside.propertyName).length !== 0
то, что требуется(searchInside.propertyName)
для работы.2. Попробуйте это. searchInside[propertyName].length !== 0
Ответ №3:
function isValid(searchInside, propertyName) {
if(typeof searchInside[propertyName] !== 'undefined')
console.log("this doesnt work");
if(searchInside.attendeeList)
console.log("this works");
}