Tenho um objeto em JavaScript:
var obj = {
"a": "test1",
"b": "test2"
}
Como posso verificar se test1 existe no objeto como um valor?
javascript
Brown KL
fonte
fonte
Object.values(obj).includes('test1');
Respostas:
Você pode transformar os valores de um objeto em uma matriz e testar se uma string está presente. Ele assume que o objeto não está aninhado e a string é uma correspondência exata:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
fonte
if(Object.values(obj).includes('test1')) { ... }
Você pode usar o método Array
.some
:fonte
Experimentar:
Ou
Isso não funcionará para
NaN
e-0
para esses valores. Você pode usar (em vez de===
) o que há de novo no ECMAScript 6:Com navegadores modernos, você também pode usar:
fonte
Use um
for...in
loop:fonte
ES6 mais curto + um forro:
fonte
Você pode usar Object.values () :
e use o método indexOf () :
Por exemplo:
Um exemplo mais detalhado está abaixo:
fonte
Fiz um teste com todos esses exemplos e o executei no Node.js v8.11.2 . Tome isso como um guia para selecionar sua melhor escolha.
Saída em meu servidor
fonte
Para um one-liner, eu diria:
fonte
Você pode tentar isto:
fonte
você pode tentar este
fonte
Função chamada:
fonte
O método Object.values () retornou um array (atribuído a getValuesOfObject) contendo os valores de propriedade enumeráveis do próprio objeto (obj). A matriz foi iterada usando o
for
loop para recuperar cada valor (valores em getValuesfromObject) e retorna uma função Boolean () para descobrir se a expressão ("text1" é um valor na matriz em loop) é verdadeira.fonte
fonte
A resposta simples para isso é dada abaixo.
Isso está funcionando porque todo tipo de JavaScript tem uma propriedade “construtor” em seu protótipo ”.
fonte
Esta deve ser uma verificação simples.
Exemplo 1
fonte
var a = {};
<br/>'hasOwnProperty' in a' //true