从Object.keys获取返回值

时间:2019-02-20 20:02:31

标签: javascript

我有一个搜索对象的函数,以查看其中是否存在值,但是在尝试记录该对象时无法从中获取值。

searchValue(object,value){
    let valueExists = Object.keys(object).find(key => object[key].valueID === value );
    console.log(valueExists);   
}

3 个答案:

答案 0 :(得分:1)

您可以像这样使用Object(o).values

let valueExists = Object.values(object).find(val => val === value )
console.log(valueExists)  

JS示例:

function searchValue(object, value) {

  let valueExists = Object.values(object).find(val => val == value)
  console.log(valueExists)
}

let user = {
  id: 12,
  name: "aaa",
  email: "aaaa@domain.com",

}

searchValue(user, "aaa")

答案 1 :(得分:0)

如果您已经拥有价值(作为searchValue参数),则不需要“获取”价值,因为您已经拥有价值(下面我将简化您的实现)

function searchValue(object, value) {
  return Object.values(object).includes(value);  
}

let obj = {a: "xx", b: "yy"};
let val = "yy"

if(searchValue(obj,val)) {
    console.log("the object value exist and is:", val);
}

如果您想查找与值相关的键,请尝试

function searchKeys(object, value) {
  return Object.keys(object).filter(k=>object[k]==value);  
}

let obj = {a: "xx", b: "yy", c:"xx"};
let val = "xx"


console.log("Keys contains 'xx' value:", searchKeys(obj,val));

答案 2 :(得分:0)

要获得预期结果,请使用以下使用对象条目的选项,并使用forEach循环获取值

function searchValue(object,value){   
    Object.entries(object).forEach(v => {
      if(v.indexOf(value) !== -1) console.log("valueExists") 
    });   
}

let test = {
  id : 11,
  name: 'abc',
  location: 'usa'
}

searchValue(test, 11)