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

Javascript 循环对象并在数组中累积返回每个键的长度,javascript,Javascript,我有一个对象,我想循环并返回数组中每个键的累积长度。以下是对象和理想输出: 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
}

// Ideal Output
[3, 4, 6]
我知道不可能在对象上循环,但我使用了
object.key()
.reduce()
来获得每个键的长度,我就是不知道如何将它们组合在一起。任何帮助都将不胜感激

const book={
“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(函数(累加器、当前值、索引){
log(books[Object.keys(books)[index]].length)
返回当前值;
},[])
const book={
“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)+数组长度);
返回acc;
},[])
不过,可以在对象上循环

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

let sum = 0;
let arr = [];

for(let i in books){
  sum += books[i].length;
  arr.push(sum);
}

console.log(arr);//[3,4,6]

对象不保证顺序
//理想输出[3,4,6]
-甚至不关闭