ES6 / Loda sh, как проверить, содержит ли объект заданное значение c данного запроса? - PullRequest
0 голосов
/ 14 апреля 2020

Имея объект, как показано ниже, как я узнаю, что в этом объекте существует определенное значение, например: template:d51a08fe-fb60-4da0-841b-03a732f19576?

const obj= {
            "5871": "template:d51a08fe-fb60-4da0-841b-03a732f19576",
            "6993": "template:d07479ff-1172-4464-996d-32d6c7358979",
            "5123": "template:280ac289-c726-4cb1-8a11-9ae1c987b399"
          };

Я пытался использовать loda sh некоторое, но для этого потребуется имя свойства, но я не могу указать здесь свойство, например 5871

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020

Вы можете использовать Object.values(), чтобы получить список всех значений в вашем Объекте. Это вернет массив всех значений. Затем вы просто используете функцию includes в массиве, чтобы увидеть, существуют ли эти значения в массиве.

const obj= {
            "5871": "template:d51a08fe-fb60-4da0-841b-03a732f19576",
            "6993": "template:d07479ff-1172-4464-996d-32d6c7358979",
            "5123": "template:280ac289-c726-4cb1-8a11-9ae1c987b399"
          };
          
const valueExists = Object.values(obj).includes("template:d07479ff-1172-4464-996d-32d6c7358979")

console.log(valueExists)
1 голос
/ 14 апреля 2020

Loda sh s _.includes() работает как с объектами, так и с массивами. Кроме того, вы можете использовать _.findKey(), чтобы найти ключ:

const obj = {
  "5871": "template:d51a08fe-fb60-4da0-841b-03a732f19576",
  "6993": "template:d07479ff-1172-4464-996d-32d6c7358979",
  "5123": "template:280ac289-c726-4cb1-8a11-9ae1c987b399"
};

const exists = _.includes(obj, 'template:d07479ff-1172-4464-996d-32d6c7358979')
const key = _.findKey(obj, v => v === 'template:d07479ff-1172-4464-996d-32d6c7358979')

console.log({ exists, key })
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
...