如何使用reduce、map或filter创建一个函数来显示和计算数组对象的每个值?

哪个E

如何创建一个返回每个品种数量的函数?

const dogs = [
    {
        name:"Cherry",
        breed:["Shiba", "Poodle"]
    },
    {
        name:"Bolt",
        breed:["Shiba"]
    },
    {
        name:"Pumpkin",
        breed:["Chihuahua", "Poodle"]
    },
    {
        name:"Happy",
        breed:["Poodle"]
    },
    {
        name:"Tofu",
        breed:["German Shepherd"]
    }
];

我想打印每个品种及其数量,如下所示。

{
German Shepherd: 1,
Shiba: 2,
Poodle: 3,
Chihuahua:1
}

编辑:另外,我如何将特定品种作为参数传递并仅打印该品种及其数量?

我开始了解一些概念和功能,但将多个不同的概念结合起来对我来说仍然具有挑战性。

安迪

这里没有真正需要reduce, filter, 或map

  1. 创建一个对象以按品种对分数进行分组。
  2. 遍历dogs数组,然后遍历每只狗的品种数组。如果对象上尚不存在品种,则创建它并将值设置为零。
  3. 将品种值加一。

为了回答您关于传入单独的品种参数以获得该品种的总数的评论,只需稍微修改函数即可。

const dogs=[{name:"Cherry",breed:["Shiba","Poodle"]},{name:"Bolt",breed:["Shiba"]},{name:"Pumpkin",breed:["Chihuahua","Poodle"]},{name:"Happy",breed:["Poodle"]},{name:"Tofu",breed:["German Shepherd"]}];

// Pass in the dogs array
// and an optional query string
function getBreedCount(dogs, query) {

  // Grouping object
  const obj = {};

  // Iterate over the dogs, and the breeds
  // updating the grouping object as we go
  for (const dog of dogs) {
    for (breed of dog.breed) {
      obj[breed] ??= 0;
      ++obj[breed];
    }
  }

  // If there is a query argument...
  if (query) {

    // ...and the query string is a key on the object
    // Return a string: `<breed>: <value>`...
    if (obj[query]) return `${query}: ${obj[query]}`;

    // ...otherwise return a message that
    // the breed doesn't exist
    return `${query} doesn't exist`;

  }

  // If there is no query argument
  // return the complete object
  return obj;

}

console.log(getBreedCount(dogs));
console.log(getBreedCount(dogs, 'Poodle'));
console.log(getBreedCount(dogs, 'Shiba'));
console.log(getBreedCount(dogs, 'Bobby Davro'));

附加文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个函数来计算和返回平均值、最大值和最小值?

创建一个函数来接受一个二维数组并返回一个显示所有键:值的对象

一个递归函数来计算数字的总和

使用Python熊猫,如何创建一个函数来计算代表比前一行低的值的行的比例?

如何创建一个函数来计算年份?

如何创建一个JavaScript函数来查找彼此嵌套的对象和数组

我如何创建一个函数来检查对象JavaScript数组中的布尔字段

如何创建一个函数来选择特定的数组?

如何计算数组中的每个元素并为每个项目创建键/值对象?

我如何创建一个函数来更改数组中的值?

仅使用reduce计算数组中出现的字符串不会读取最后一个值

JavaScript:创建一个函数来拒绝被认为是真实的数组元素,从而麻烦数组中的对象的值

如何创建一个对象数组,其中每个对象都有 4 个值?

使用reduce,如何创建一个对象目录,其中每个键都是唯一值并将重复值存储为子对象?

如何在数组上使用 .map 为每个项目创建一个新的 JSON 对象?

forEach和map函数迭代对象的嵌套json数组并创建一个新数组

根据一个对象键和另一个对象值与对象进行比较,然后使用map函数将结果推入新数组?

如何使用一个参数来实现函数来交换对象的私有内容

如何创建一个函数来测试每个变量的正态性

使用每个数组创建一个新对象

使用带一个参数的函数计算数组中元素的重复次数

创建一个函数来检查数组中的任何索引是否具有相同的值

我想创建一个函数来找到数组中的最大值

创建一个纯函数来合并对象

如何计算数组中所有值的总和,直到一个点?

如何在Java中计算数组中的第一个重复值

如何创建一个函数来评估某个x值的用户输入函数的导数

如何编写一个函数来计算总价,清除按钮值并提交表单

如何使用 R 和 DARKSKY api 创建一个函数来检索多个城市的历史天气?