#javascript #function #object
Вопрос:
У меня есть одна постановка проблемы.
Реализуйте функцию propertyExists(obj, путь), которая принимает объект и путь (строку) в качестве аргументов и возвращает «False», если свойство не существует для этого объекта или равно нулю, иначе возвращает значение свойства.
И вот решение.
function propertyExists(obj,path) { // Write logic here let result = obj.hasOwnProperty(path); if(result) { return (obj.path); } else { return result; } }
Является ли это правильным способом сделать это?
Комментарии:
1. Сталкиваетесь ли вы с какими — либо проблемами в связи с этой реализацией?
2. Это зависит от того, каково определение пути, для меня путь был бы чем-то вроде..
header.customer.address.lines[0]
и т.д. Но тогда вы назвали егоpropertyExists
, так что, скорее всего, это все равно собственность, так что не знаю, почему это не такpropertyExists(obj, property)
Вы, вероятноreturn obj[path]
, тоже хотите.3. Проверка кажется неполной в соответствии с требованиями. Вы могли бы быть здесь более конкретны. -gt;
if (obj[path] === undefined || obj[path] === null) { return false; } else { return obj[path]; }
4. @SifatHaque Да, когда я отправляю решение, я получаю сообщение с неправильным ответом
Ответ №1:
Несколько проблем: первое имя функции должно представлять то, что она делает, путь как имя переменной расплывчат, но имя свойства как переменная ясно. что вам следует сделать, так это либо:
- функция записи называется «GetValue», она возвращает значение, если оно существует или равно нулю
function getValue(obj,propertyName) { if(!obj) { // if object not exist return null; } return obj[propertyName]; }
- функция записи, называемая «propertyExists», должна возвращать значение true, если существует другое значение false.
function propertyExists(obj,propertyName) { if(!obj) { // if object not exist return false; } return obj.hasOwnProperty(propertyName); }