Как удалить значения унаследованных объектов в Javascript?

1

Я получаю результат пользователя из базы данных (Mongodb using Mongoose) в Nodejs. Теперь я хочу удалить некоторые ключи в результатах пользователя. Но не удалось удалить его свойство. Я много раз искал, но не нашел решения для удаления

Пример:-

File1.js Выбранный пользователь по запросу mongo

userModel.findOne(query, projection)
      .then(function (result) {
          if (result)
              return result;
          return false
      })

Вышеприведенный запрос извлекает результат из базы данных, и результат выглядит так:

user = {
 f_name: "Vikas",
 l_name: "Kohli",
 key1: "abcD",
 key2: "dhdhdh"

}

File2.js

user = {
     f_name: "Vikas",
     l_name: "Kohli",
     key1: "abcD",
     key2: "dhdhdh"

    }
 inputuser = "dfdfhdfgy"

Создайте пользовательский ключ с помощью key1 результата пользователя, затем сравните

(_.isEqual(userkey, user.key2)){
 //call to next file
}else{
//send response as key not matched
}

Выполняя некоторую логику, извлеките ключ пользователя, а затем выполните некоторый метод шифрования, используя key2

Наконец сравните key2 с ключом userResullt 2 (который я извлек из db). Если он ок, а затем перейдите к следующей функции

File3.js Ожидаемый результат: -

user = {
         f_name: "Vikas",
         l_name: "Kohli"
        }

Текущий сценарий: -

user = {
         f_name: "Vikas",
         l_name: "Kohli",
         key1: "abcD"
         key2: "dhdhdh"

        }

Теперь вы хотите отправить ответ с результатом пользователя с удаленным ключом1 и ключом2, но не можете удалить эти ключи

Ключевое слово delete не удаляет унаследованные свойства, но если вы удалите свойство прототипа, оно затронет все объекты, унаследованные от прототипа. (Из w3schools, developer.mozilla)

Также были найдены полезные ссылки, но никто из них не работал на меня. Как я могу это достичь?

Разъяснение о неспособности javascript удалять унаследованные свойства.

Почему delete оператор возвращает true, даже если свойство не было удалено из объекта

  • 1
    слишком длинный пост для чего-то простого. delete key не работает?
  • 0
    не за что. Даже если он показывает true, но не может удалить этот ключ, так как этот объект наследуется
Показать ещё 2 комментария
Теги:
object
delete-operator
inherited

1 ответ

1

В пользовательском объекте есть синтаксическая ошибка запятой, исправить ее и применить оператор удаления

user = {
 f_name: "Vikas",
 l_name: "Kohli",
 key1: "abcD",
 key2: "dhdhdh"
}

delete user.key1
delete user.key2
  • 0
    Нет синтаксической ошибки. По ошибке я написал здесь синтаксическую ошибку. Теперь я изменился

Ещё вопросы

Сообщество Overcoder
Наверх
Меню