简体   繁体   English

从 Object.keys 获取返回值

[英]Get return Value from Object.keys

I have a function that searches an object, to see if a value exist in it but I can't get the value from it when I try to log it.我有一个搜索对象的函数,以查看其中是否存在值,但是当我尝试记录它时无法从中获取值。

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

You could use Object(o).values like :你可以使用Object(o).values像:

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

JS Example : 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")

If you already have value (as searchValue parameter) you don't need to "get" value because you already have it (below I simplify your implementation)如果您已经拥有值(作为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); }

If you interest to find keys which are associated with value try this如果您有兴趣查找与值关联的键,请尝试此操作

 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));

To achieve expected result, use below option of using Object entries and looping with forEach for value为了达到预期的结果,请使用以下使用对象条目并使用 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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM