我有一个搜索对象的函数,以查看其中是否存在值,但是在尝试记录该对象时无法从中获取值。
searchValue(object,value){
let valueExists = Object.keys(object).find(key => object[key].valueID === value );
console.log(valueExists);
}
答案 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)