我正在尝试获取要存储在数据库中的对象数组的对象ID。 有什么想法吗?
//Input
var data = [{
id: 1,
name: 'a'
},
{
id: 2,
name: 'b'
}
];
这是我要获取其值的对象,现在我要实现的是来自要获取id值的名称。
预期产量
如果结果为'a',那么我应该得到值'1'
如果结果是'b',那么我应该得到值'2'
任何人都可以解决这个问题。请帮助我
答案 0 :(得分:3)
我会将数组变成一个对象,以便您可以访问obj[name]
来获取id
:
var data = [
{id: 1, name: 'a'},
{id: 2, name: 'b'},
{id: 3, name: 'ccc'}
];
const obj = data.reduce((a, { id, name }) => {
a[name] = id;
return a;
}, {});
console.log(obj.a);
console.log(obj.b);
// if the name is in a variable:
const name = 'ccc';
console.log(obj[name]);
答案 1 :(得分:1)
您可以使用.find()
:
var arr = [{
id: 1,
name: 'a'
},
{
id: 2,
name: 'b'
}
];
function getId(data, name) {
return 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)
答案 2 :(得分:0)
尝试一下
var data = [{
id: 1,
name: 'a'
},
{
id: 2,
name: 'b'
}
];
var valuse = data.find(function (el) {
return el.name == 'b' ;
});
console.log(valuse.id);