从javascript中的键和字符串值获取objectId
我正在尝试获取要存储在DB中的一个对象数组的对象ID。 有什么想法吗从javascript中的键和字符串值获取objectId,javascript,arrays,Javascript,Arrays,我正在尝试获取要存储在DB中的一个对象数组的对象ID。 有什么想法吗 //Input var data = [{ id: 1, name: 'a' }, { id: 2, name: 'b' } ]; 这就是我想要得到的对象的值,现在我想要得到的是我想要得到的id值 预期产出 如果结果是'a',那么我应该得到值'1' 如果结果是“b”,那么我应该得到值“2” 有人有什么
//Input
var data = [{
id: 1,
name: 'a'
},
{
id: 2,
name: 'b'
}
];
这就是我想要得到的对象的值,现在我想要得到的是我想要得到的id值
预期产出
如果结果是'a',那么我应该得到值'1'
如果结果是“b”,那么我应该得到值“2”
有人有什么想法来做这件事吗。。请帮帮我,伙计们我会把数组变成一个对象,这样你就可以访问
obj[name]
来获取id
:
var数据=[
{id:1,名称:'a'},
{id:2,名称:'b'},
{id:3,名称:'ccc'}
];
const obj=data.reduce((a,{id,name})=>{
a[名称]=id;
返回a;
}, {});
控制台日志(obj.a);
控制台日志(obj.b);
//如果名称在变量中:
常数名称='ccc';
console.log(obj[name])
我将把数组变成一个对象,这样您就可以访问obj[name]
来获取id
:
var数据=[
{id:1,名称:'a'},
{id:2,名称:'b'},
{id:3,名称:'ccc'}
];
const obj=data.reduce((a,{id,name})=>{
a[名称]=id;
返回a;
}, {});
控制台日志(obj.a);
控制台日志(obj.b);
//如果名称在变量中:
常数名称='ccc';
console.log(obj[name])代码>试试这个
var数据=[{
id:1,
姓名:“a”
},
{
id:2,
姓名:'b'
}
];
var valuse=data.find(函数(el){
返回el.name=='b';
});
控制台日志(valuse.id)代码>试试这个
var数据=[{
id:1,
姓名:“a”
},
{
id:2,
姓名:'b'
}
];
var valuse=data.find(函数(el){
返回el.name=='b';
});
控制台日志(valuse.id)代码>您可以使用.find()
:
var-arr=[{
id:1,
姓名:“a”
},
{
id:2,
姓名:'b'
}
];
函数getId(数据、名称){
返回typeof name==='string'?
data.find(e=>name==e.name)。id:
data.filter(e=>name.includes(e.name)).map(e=>e.id)
}
var result1=getId(arr,['a','b']);
var result2=getId(arr,'a');
console.log(result1)
console.log(result2)
您可以使用.find()
:
var-arr=[{
id:1,
姓名:“a”
},
{
id:2,
姓名:'b'
}
];
函数getId(数据、名称){
返回typeof name==='string'?
data.find(e=>name==e.name)。id:
data.filter(e=>name.includes(e.name)).map(e=>e.id)
}
var result1=getId(arr,['a','b']);
var result2=getId(arr,'a');
console.log(result1)
console.log(result2)
nice hack!喜欢函数式编程很好的黑客!喜欢函数式编程谢谢大家!,我还有一个问题,如果数组中的字符串值像let sayvar arr=['a','b'],该怎么办
data.find(e=>e.name==arr)
结果可以是:[1,2]我相应地编辑了答案,如果你传递了一个数组,你需要includes()
找到匹配的元素以及filter()
是,工作正常。**谢谢你们帮助我**非常感谢大家!,我还有一个问题,如果数组中的字符串值像let sayvar arr=['a','b'],该怎么办
data.find(e=>e.name==arr)
结果可以是:[1,2]我相应地编辑了答案,如果你传递了一个数组,你需要includes()
找到匹配的元素以及filter()
是,工作正常。**谢谢你们帮助我**