我有一个对象数组,用于存储不同“学生”的数据。
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
如何使此功能起作用?
答案 0 :(得分:2)
使用Array.find()
查找具有您知道的属性的对象,如果未找到对象,则使用默认值。从对象中提取Error in as.data.frame.default(data) :
cannot coerce class ""mvr"" to a data.frame
属性:
find
答案 1 :(得分:0)
您可以使用.find()
。
var pupils = [{id: 0, name: 'will'},{id: 1,name: 'megan'}];
function getByPropertyAndValue(knownProp, knownValue, desiredProperty) {
let pupil = pupils.find(p => p[knownProp] === knownValue); //Find pupil by property and value
return pupil && pupil[desiredProperty]; //Return the value, or undefined if not found
}
console.log(getByPropertyAndValue("id", 1, "name"));
答案 2 :(得分:0)
除if
语句的一部分外,大多数代码都是正确的。请找到工作示例-
var pupils = [{
id: 0,
name: 'will'
},
{
id: 1,
name: 'megan'
}
];
function findPupil(property, value, find) {
let result
pupils.forEach(function(pupil) {
if (pupil[property] === value) {
result = pupil[find];
}
});
return result
}
var name = findPupil('id', 1, 'name');
console.log(name)
答案 3 :(得分:0)
for(int j=0; j<10; j++){
pid_t pid = fork();
if( pid == 0 ) {
printf("child: %d\n", j);
exit(0);
}
else if( pid < 0 ) {
perror("fork failed");
}
printf("parent: %d, ", j);
fflush(stdout);
}
wait_all();
printf("\n");
parent: 0, child: 0
parent: 1, child: 1
parent: 2, child: 2
parent: 3, child: 3
parent: 4, child: 4
parent: 5, child: 5
parent: 6, child: 6
parent: 7, child: 7
parent: 8, child: 8
parent: 9, child: 9