【发布时间】:2023-04-10 02:12:02
【问题描述】:
有很多关于过滤对象数组的问题,但我在用另一种方式时遇到了麻烦;一个里面有数组的对象。
所需的输出是一个带有结果的数组。在这种情况下,他的爱好列表中有“瑜伽”的人的名字是约翰。
示例如下:
function findHobbyists(hobbies, hobby) {
return [];
}
var hobbies = {
"John": ['Piano', 'Puzzles', 'Yoga'],
"Adam": ['Drama', 'Fashion', 'Pets'],
"Mary": ['Magic', 'Pets', 'Reading']
};
console.log(findHobbyists(hobbies, 'Yoga'));
免责声明,这是测试的一部分,我正在寻找解决此问题的正确方法以供将来参考。
这是我迄今为止尝试过的。这是错误的,我知道;
function findHobbyists(hobbies, hobby) {
var res = []
for (var key in hobbies) {
if (hobbies.hasOwnProperty(key)) {
if (hobbies[key].filter(item => item == hobby)) {
res.push(hobbies[key])
}
}
}
return res;
}
var hobbies = {
"John": ['Piano', 'Puzzles', 'Yoga'],
"Adam": ['Drama', 'Fashion', 'Pets'],
"Mary": ['Magic', 'Pets', 'Reading']
};
console.log(findHobbyists(hobbies, 'Yoga'));
【问题讨论】:
-
感谢@RicardoGonzalez 的输入我的印象是,如果您在解决问题时遇到困难,您可以提出问题。由于该站点的标题是“Stack Overflow - 开发人员在此 学习、分享和建立职业”。我尝试了几种不同的方法,但它们都离我太远了,我不想用它污染我的问题。但是看到我因为提出一个试图学习的问题而被否决,我承认我这样做是错误的。我已将我的尝试添加到问题中,希望没问题。
-
对不起@Dennis,我不是故意粗鲁的,但是如果我们阅读代码更容易理解问题,如果我们遵循一些标准化的规则来提高工作效率会更容易.
标签: javascript arrays find filtering javascript-objects