gpt4 book ai didi

javascript - 在对象数组中查找属性(作为字符串存储在变量中)

转载 作者:行者123 更新时间:2023-12-01 01:15:34 25 4
gpt4 key购买 nike

我有一个对象数组,用于存储不同“学生”的数据。

var pupils = [
{
id: 0,
name: 'will'
},
{
id: 1,
name: 'megan'
}
];

我想创建一个名为“findPupil”的函数,它接受三个参数:您知道的属性、您知道的值以及您想要查找的属性。

假设您知道要查找的学生的 ID 为 1,但不知道他们的名字。在这种情况下,您可以像这样调用该函数:

var name = findPupil('id', 1, 'name'); // should now store 'Megan' as a string

这是我编写的函数:

function findPupil(property, value, find) {
pupils.forEach(function(pupil) {
if(pupils[pupil][`${property}`] === value) {
return pupils[pupil][`${find}`];
}
});
}

调用此函数将返回以下内容:

Error: Cannot read property 'id' of undefined

如何让这个功能发挥作用?

最佳答案

使用Array.find()查找具有您知道的属性的对象,如果未找到对象,则查找默认属性。从对象中提取 find 属性:

const pupils = [{"id":0,"name":"will"},{"id":1,"name":"megan"}];

const findPupil = (property, value, find) =>
(pupils.find(o => o[property] === value) || {})[find];

const name = findPupil('id', 1, 'name');

console.log(name);

关于javascript - 在对象数组中查找属性(作为字符串存储在变量中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54794125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com