Javascript/Lodash/Redux-从对象返回具有特定id的对象
假设我们有一个对象:Javascript/Lodash/Redux-从对象返回具有特定id的对象,javascript,json,reactjs,redux,lodash,Javascript,Json,Reactjs,Redux,Lodash,假设我们有一个对象: names: { 0: {"id": 30, name: "Adam"}, 1: {"id": 1, name: "Ben"}, 2: {"id": 15, name: "John"}, ... } 使用lodash get函数,我想将特定的名称保存到常量中 const name = _.get(state, ['names', nameId]); 我知道这不会起作用,因为我选择的是对象的键,而不是id。知道如何修
names:
{
0: {"id": 30, name: "Adam"},
1: {"id": 1, name: "Ben"},
2: {"id": 15, name: "John"},
...
}
使用lodash get函数,我想将特定的名称保存到常量中
const name = _.get(state, ['names', nameId]);
我知道这不会起作用,因为我选择的是对象的键,而不是id。知道如何修复它吗?请注意,我不能像使用id作为对象的键那样规范化数据,因为它破坏了这些数据的来源顺序。是否可以在对象中循环并查找特定id
我正在从其他函数正确地获取nameId
您可以使用.find()
和.values()
通过id获取特定对象
var state={名称:{
0:{“id”:30,名称:“Adam”},
1:{“id”:1,名字:“Ben”},
2:{“id”:15,名字:“John”},
}}
var r=u.find(u.values(state.names),{id:1})
console.log(r)
无需使用Lodash。只需在对象的属性中循环,在id
上查找匹配项:
常量名称={
0:{“id”:30,名称:“Adam”},
1:{“id”:1,名字:“Ben”},
2:{“id”:15,名字:“John”}
};
常量nameId=1;
让obj;
for(名称中的常量名称){
if(name[name].id==nameId){
obj=名称[名称];
打破
}
}
控制台日志(obj)代码>试试这个简单的方法
var output = Object.values( obj.names ).find( function( item ){ return item.id = inputId }).name;
- 使用
object.values
- 使用
find
通过执行id
比较来获取特定值
- 获取返回对象的
name
属性
演示
var obj={
姓名:{
0:{“id”:30,名称:“Adam”},
1:{“id”:1,名字:“Ben”},
2:{“id”:15,名字:“John”}
}
};
var-inputId=15;
log(Object.values(obj.names).find(函数(项){return item.id=inputId}).name)代码>答案必须使用lodash吗?你的意思是要将名称关联的对象保存到常量中吗?不,它不必使用lodash如果名称id为30,那么名称常量内部应该有{“id”:30,名称:“Adam”}