循环对象并在数组中累积返回每个键的长度

呼叫替代

我有一个对象,我想循环并返回数组中每个键的累积长度。下面是对象和理想的输出:

const books = {
    "book_1": ["image-1", "image-2", "image-3"], // 3
    "book_2": ["image-1"], // 1
    "book_3": ["image-1", "image-2"] // 2
}

// Ideal Output
[3, 4, 6]

我知道不可能遍历一个对象,但是我已经使用Object.key()然后.reduce()获取每个键的长度,我只是不知道如何将它们拼凑在一起。任何帮助将不胜感激

const books = {
    "book_1": ["image-1", "image-2", "image-3"], // 3
    "book_2": ["image-1"], // 1
    "book_3": ["image-1", "image-2"] // 2
}

console.log(Object.keys(books).reduce(function (accumulator, currentValue, index) {
  console.log(books[Object.keys(books)[index]].length)
  
  return currentValue;
}, []))

雅罗曼达 X

const books = {
    "book_1": ["image-1", "image-2", "image-3"], // 3
    "book_2": ["image-1"], // 1
    "book_3": ["image-1", "image-2"] // 2
}

console.log(Object.entries(books).reduce((acc, [key, array]) => {
  acc.push((acc.slice(-1)[0] || 0) + array.length);
  return acc;
}, []))

但是......由于不能保证键顺序,你可能会得到

const books = {
    "book_2": ["image-1"], // 1
    "book_1": ["image-1", "image-2", "image-3"], // 3
    "book_3": ["image-1", "image-2"] // 2
}

console.log(Object.entries(books).reduce((acc, [key, array]) => {
  acc.push((acc.slice(-1)[0] || 0) + array.length);
  return acc;
}, []))

我猜你想要一个特定的顺序 - 所以,对键进行排序

const books = {
    "book_2": ["image-1"], // 1
    "book_1": ["image-1", "image-2", "image-3"], // 3
    "book_3": ["image-1", "image-2"] // 2
}

console.log(Object.entries(books).sort(([a], [b]) => a.localeCompare(b)).reduce((acc, [key, array]) => {
  acc.push((acc.slice(-1)[0] || 0) + array.length);
  return acc;
}, []))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript - 为每个循环创建一个对象并在数组中递增计数

来自分类Dev

在数组中每个对象的末尾添加新键

来自分类Dev

如何循环对象数组并在数组内部返回其值?

来自分类Dev

如何循环对象数组并在数组内部返回其值?

来自分类Dev

循环遍历数组并返回Powershell中每个对象的结果

来自分类Dev

使用 jq,选择多个键并在数组中返回它们

来自分类Dev

为什么长度不作为键出现在数组对象中?

来自分类Dev

在数组中插入键和对象

来自分类Dev

在数组中的每个对象上调用函数的最佳方法?没有for循环?

来自分类Dev

为对象中的每个键返回html

来自分类Dev

使用键在数组数组中划分对象

来自分类Dev

如何在数组中存储元素并在C中获取数组长度?

来自分类Dev

循环10天并将每个日期存储在数组中

来自分类Dev

在多维数组中搜索值并在PHP中返回键

来自分类Dev

数组在每个onclick之后附加并在javascript中循环

来自分类Dev

Swift:在数组中查找值并返回特定键

来自分类Dev

在数组中搜索特定值并返回其键

来自分类Dev

Swift:在数组中查找值并返回特定键

来自分类Dev

在数组中的每个对象上调用实例方法

来自分类Dev

在数组中查找每个对象的offsetWidth-Javascript(NO JQuery)

来自分类Dev

在数组中搜索以查看每个对象已被使用的次数

来自分类Dev

NodeJS通过键的值在数组中查找对象

来自分类Dev

如何过滤包装在数组中的对象内的键?

来自分类Dev

在数组或对象中动态添加带键的数据

来自分类Dev

使用lodash在数组对象中查找并添加额外的键?

来自分类Dev

如何使用空格键在数组中显示对象

来自分类Dev

查找对象键是否在数组javascript中

来自分类Dev

获取JavaScript对象数组中相同键的长度

来自分类Dev

在数组中创建带有循环的嵌套对象

Related 相关文章

  1. 1

    Javascript - 为每个循环创建一个对象并在数组中递增计数

  2. 2

    在数组中每个对象的末尾添加新键

  3. 3

    如何循环对象数组并在数组内部返回其值?

  4. 4

    如何循环对象数组并在数组内部返回其值?

  5. 5

    循环遍历数组并返回Powershell中每个对象的结果

  6. 6

    使用 jq,选择多个键并在数组中返回它们

  7. 7

    为什么长度不作为键出现在数组对象中?

  8. 8

    在数组中插入键和对象

  9. 9

    在数组中的每个对象上调用函数的最佳方法?没有for循环?

  10. 10

    为对象中的每个键返回html

  11. 11

    使用键在数组数组中划分对象

  12. 12

    如何在数组中存储元素并在C中获取数组长度?

  13. 13

    循环10天并将每个日期存储在数组中

  14. 14

    在多维数组中搜索值并在PHP中返回键

  15. 15

    数组在每个onclick之后附加并在javascript中循环

  16. 16

    Swift:在数组中查找值并返回特定键

  17. 17

    在数组中搜索特定值并返回其键

  18. 18

    Swift:在数组中查找值并返回特定键

  19. 19

    在数组中的每个对象上调用实例方法

  20. 20

    在数组中查找每个对象的offsetWidth-Javascript(NO JQuery)

  21. 21

    在数组中搜索以查看每个对象已被使用的次数

  22. 22

    NodeJS通过键的值在数组中查找对象

  23. 23

    如何过滤包装在数组中的对象内的键?

  24. 24

    在数组或对象中动态添加带键的数据

  25. 25

    使用lodash在数组对象中查找并添加额外的键?

  26. 26

    如何使用空格键在数组中显示对象

  27. 27

    查找对象键是否在数组javascript中

  28. 28

    获取JavaScript对象数组中相同键的长度

  29. 29

    在数组中创建带有循环的嵌套对象

热门标签

归档