Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Lodash/Redux-从对象返回具有特定id的对象_Javascript_Json_Reactjs_Redux_Lodash - Fatal编程技术网

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”}