如何使用JavaScript检查对象中是否存在值

如何使用JavaScript检查对象中是否存在值,javascript,Javascript,我有一个JavaScript对象: var obj = { "a": "test1", "b": "test2" } 如何检查test1是否作为值存在于对象中?您可以使用数组方法。一些: var exists = Object.keys(obj).some(function(k) { return obj[k] === "test1"; }); 您可以使用数组方法。有些: var exists

我有一个JavaScript对象:

var obj = {
   "a": "test1",
   "b": "test2"
}

如何检查test1是否作为值存在于对象中?

您可以使用数组方法
。一些

var exists = Object.keys(obj).some(function(k) {
    return obj[k] === "test1";
});

您可以使用数组方法
。有些

var exists = Object.keys(obj).some(function(k) {
    return obj[k] === "test1";
});
尝试:

var obj={
“a”:“test1”,
“b”:“test2”
};
Object.keys(obj).forEach(函数(key){
如果(obj[键]=='test1'){
警报(“存在”);
}
});尝试:

var obj={
“a”:“test1”,
“b”:“test2”
};
Object.keys(obj).forEach(函数(key){
如果(obj[键]=='test1'){
警报(“存在”);
}
});您可以尝试以下方法:

function checkIfExistingValue(obj, key, value) {
    return obj.hasOwnProperty(key) && obj[key] === value;
}
var test = [{name : "jack", sex: F}, {name: "joe", sex: M}]
console.log(test.some(function(person) { return checkIfExistingValue(person, "name", "jack"); }));
您可以尝试以下方法:

function checkIfExistingValue(obj, key, value) {
    return obj.hasOwnProperty(key) && obj[key] === value;
}
var test = [{name : "jack", sex: F}, {name: "joe", sex: M}]
console.log(test.some(function(person) { return checkIfExistingValue(person, "name", "jack"); }));

这应该是一个简单的检查

例1

var myObj = {"a": "test1"}

if(myObj.a == "test1") {
    alert("test1 exists!");
}

这应该是一个简单的检查

例1

var myObj = {"a": "test1"}

if(myObj.a == "test1") {
    alert("test1 exists!");
}

您可以将对象的值转换为数组,并测试是否存在字符串。它假定对象未嵌套,且字符串完全匹配:

var obj = { a: 'test1', b: 'test2' };
if (Object.values(obj).indexOf('test1') > -1) {
   console.log('has test1');
}

您可以将对象的值转换为数组,并测试是否存在字符串。它假定对象未嵌套,且字符串完全匹配:

var obj = { a: 'test1', b: 'test2' };
if (Object.values(obj).indexOf('test1') > -1) {
   console.log('has test1');
}
使用循环:

使用循环:


我对所有这些示例进行了测试,并在Node.js v8.11.2中运行了该测试。将此作为选择最佳选择的指南

let i,tt;
const obj={a:'test1',b:'test2',c:'test3',d:'test4',e:'test5',f:'test6'};
控制台时间(“test1”)
i=0;
对于(;i-1){
tt=真;
}
}
console.timeEnd(“test1”)
控制台时间(“test1.1”)
i=0;

对于(;i我对所有这些示例进行了测试,并在Node.js v8.11.2中运行了此测试。将此作为选择最佳选择的指南

let i,tt;
const obj={a:'test1',b:'test2',c:'test3',d:'test4',e:'test5',f:'test6'};
控制台时间(“test1”)
i=0;
对于(;i-1){
tt=真;
}
}
console.timeEnd(“test1”)
控制台时间(“test1.1”)
i=0;
对于(;i,您可以使用:

Object.values()
方法返回给定对象自身的数组 可枚举属性值,顺序与
for…in
循环(区别在于for in循环枚举 原型链中的属性)

然后使用以下方法:

indexOf()
方法返回给定索引所在的第一个索引 元素可以在数组中找到,如果不存在,则为-1

例如:

Object.values(obj).indexOf("test`") >= 0
下面是一个更详细的示例:

var obj={
“a”:“test1”,
“b”:“test2”
}
console.log(Object.values(obj.indexOf(“test1”));//0
console.log(Object.values(obj.indexOf(“test2”));//1
console.log(Object.values(obj.indexOf(“test1”)>=0);//true
console.log(Object.values(obj.indexOf(“test2”)>=0);//true
console.log(Object.values(obj.indexOf(“test10”));/-1
console.log(Object.values(obj.indexOf(“test10”)>=0);//false
您可以使用:

Object.values()
方法返回给定对象自身的数组 可枚举属性值,顺序与
for…in
循环(区别在于for in循环枚举 原型链中的属性)

然后使用以下方法:

indexOf()
方法返回给定索引所在的第一个索引 元素可以在数组中找到,如果不存在,则为-1

例如:

Object.values(obj).indexOf("test`") >= 0
下面是一个更详细的示例:

var obj={
“a”:“test1”,
“b”:“test2”
}
console.log(Object.values(obj.indexOf(“test1”));//0
console.log(Object.values(obj.indexOf(“test2”));//1
console.log(Object.values(obj.indexOf(“test1”)>=0);//true
console.log(Object.values(obj.indexOf(“test2”)>=0);//true
console.log(Object.values(obj.indexOf(“test10”));/-1
console.log(Object.values(obj).indexOf(“test10”)>=0);//false
var obj={“a”:“test1”,“b”:“test2”};
var getValuesOfObject=Object.values(obj)
对于(索引=0;索引
Object.values()方法返回一个数组(分配给getValuesOfObject),其中包含给定对象(obj)自己的可枚举属性值。使用
for
循环迭代该数组以检索每个值(getValuesfromObject中的值),并返回一个布尔()函数,以确定表达式(“text1”是否是循环数组中的一个值)为true。

var obj={“a”:“test1”、“b”:“test2”};
var getValuesOfObject=Object.values(obj)
对于(索引=0;索引

Object.values()方法返回一个数组(分配给getValuesOfObject),其中包含给定对象(obj)自己的可枚举属性值。使用
for
循环迭代该数组以检索每个值(getValuesfromObject中的值),并返回一个布尔()函数,以确定表达式(“text1”是否是循环数组中的一个值)是真的。

对于单行程序,我会说:

exist = Object.values(obj).includes("test1");
console.log(exist);

对于一艘客轮,我想说:

exist = Object.values(obj).includes("test1");
console.log(exist);

最短ES6+一个衬里:

let exists = Object.values(obj).includes("test1");

最短ES6+一个衬里:

let exists = Object.values(obj).includes("test1");

下面给出了简单的答案

这是因为每个JavaScript类型都有一个构造函数属性prototype

let数组=[]
array.constructor==数组
//=>正确
让数据={}
data.constructor==对象
//=>正确

下面给出了简单的答案

这是因为每个JavaScript类型都有一个构造函数属性prototype

let数组=[]
array.constructor==数组
//=>正确
让数据={}
data.constructor==对象
//=>正确
调用的函数:

 getValue(obj, "a");
调用的函数:

 getValue(obj, "a");
你可以试试这个

var obj = {
  "a": "test1",
  "b": "test2"
};

const findSpecificStr = (obj, str) => {
  return Object.values(obj).includes(str);
}

findSpecificStr(obj, 'test1');
你可以试试这个

var obj = {
  "a": "test1",
  "b": "test2"
};

const findSpecificStr = (obj, str) => {
  return Object.values(obj).includes(str);
}

findSpecificStr(obj, 'test1');
新版