JS-将键从对象移动到另一个对象

马哈利克

我有书籍清单:

let myBooks = [{"id":8,"name":"Don Quijote","author":"Cervantes"},{"id":9,"name":"Romeo and Juliet","author":"Shakespeare"},{"id":10,"name":"Hamlet","author":"Shakespeare"},{"id":11,"name":"Othello","author":"Shakespeare"},{"id":"12","nazev":"Antigona","autor":"Sofokles"}]

我需要找出如何与作者一起创建新对象,以及他们要进行多少次myBooks这样的工作:

let authorsInMyBooks = [{"Cervantes":1},{"Shakespeare":3},{"Sofokles":1}]

我尝试了这个:

for (i = 0; i < myBooks.length; i++) {
            if (myBooks[i].author in authorsInMyBooks) {
                authorsInMyBooks[myBooks[i].author] += 1;
            } else {
                authorsInMyBooks[myBooks[i].author] = 1;
            }
        }

但是输出是:

[{"Cervantes":5, "Shakespeare":9, "Sofokles":1}]

当我向其中添加新书时,每次都使用for循环调用function myBooks

马埃里·阿里(Maheer Ali)

您需要使用一个空对象作为的初始值,authorsInMyBooks然后用于map()获取数组。

let myBooks = [{"id":8,"name":"Don Quijote","author":"Cervantes"},{"id":9,"name":"Romeo and Juliet","author":"Shakespeare"},{"id":10,"name":"Hamlet","author":"Shakespeare"},{"id":11,"name":"Othello","author":"Shakespeare"},{"id":"12","nazev":"Antigona","autor":"Sofokles"}]

let authorsInMyBooks = {}
for (let i = 0; i < myBooks.length; i++) {
   if (authorsInMyBooks[myBooks[i].author]) {
      authorsInMyBooks[myBooks[i].author] += 1;
   } else {
      authorsInMyBooks[myBooks[i].author] = 1;
   }
}

authorsInMyBooks = Object.entries(authorsInMyBooks).map(([k, v]) => ({[k]: v}));

console.log(authorsInMyBooks)

您可以使用 reduce()

let myBooks = [{"id":8,"name":"Don Quijote","author":"Cervantes"},{"id":9,"name":"Romeo and Juliet","author":"Shakespeare"},{"id":10,"name":"Hamlet","author":"Shakespeare"},{"id":11,"name":"Othello","author":"Shakespeare"},{"id":"12","nazev":"Antigona","autor":"Sofokles"}]

const res = myBooks.reduce((ac, {author}) => {
  ac[author] = (ac[author] || 0) + 1
  return ac;
}, {})

const authorsInMyBooks = Object.entries(res).map(([k, v]) => ({[k]: v}));

console.log(authorsInMyBooks)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

节点:从另一个js文件导入对象数组?

来自分类Dev

JS- appendChild从一个div对象到另一个

来自分类Dev

从另一个实例初始化JS对象(运行时继承)

来自分类Dev

Node.js-从另一个函数/对象发出事件

来自分类Dev

是否可以引用JS数组/对象内的另一个元素

来自分类Dev

如何使用适用于Node.js的AWS开发工具包将Amazon S3中的所有对象从一个前缀复制/移动到另一个

来自分类Dev

dragula JS通过单击事件从一个列表移动到另一个列表

来自分类Dev

three.js如何将一个对象放置在另一个对象旁边(全局世界位置)

来自分类Dev

使用underscore.js在另一个对象中查找一个对象

来自分类Dev

如何使用Vue.js制作待办事项从一个列表移动到另一个列表的动画?

来自分类Dev

JS:使用重命名的属性将一个对象分解为另一个对象

来自分类Dev

如何在Vue Js中将数组项移动到另一个数组

来自分类Dev

JS-如何将JSON对象的项目移动到另一个位置

来自分类Dev

如何在React JS中用来自另一个对象的数据填充对象

来自分类Dev

将一个JS对象转换为另一个

来自分类Dev

将特定属性从一个对象移动到另一个对象

来自分类Dev

THREE.js-仅在另一个对象前面时才渲染对象

来自分类Dev

将属性从一个对象移动到Javascript中的另一个对象

来自分类Dev

如果一个对象在js中创建另一个对象,则子对象可以调用父对象吗?

来自分类Dev

如何访问另一个JS对象中的匹配对象属性

来自分类Dev

Meteor.js将项目从一个集合移动到另一个集合

来自分类Dev

将 JS 子对象合并成一个带有连接键的 JS 对象

来自分类Dev

如何将 express.js 响应对象传递给另一个模块

来自分类Dev

在fabric.js 中围绕另一个对象旋转另一个独立对象

来自分类Dev

JS 将一个对象复制到另一个对象

来自分类Dev

如何将一个 JS 对象的数据添加到另一个

来自分类Dev

将 JS 对象数组推送到具有匹配对象键的另一个对象数组

来自分类Dev

JS通过另一个对象数组过滤对象数组

来自分类Dev

尝试使用 node.js 和 exec + aws cli 将所有文件从一个 S3 存储桶移动到另一个存储桶

Related 相关文章

  1. 1

    节点:从另一个js文件导入对象数组?

  2. 2

    JS- appendChild从一个div对象到另一个

  3. 3

    从另一个实例初始化JS对象(运行时继承)

  4. 4

    Node.js-从另一个函数/对象发出事件

  5. 5

    是否可以引用JS数组/对象内的另一个元素

  6. 6

    如何使用适用于Node.js的AWS开发工具包将Amazon S3中的所有对象从一个前缀复制/移动到另一个

  7. 7

    dragula JS通过单击事件从一个列表移动到另一个列表

  8. 8

    three.js如何将一个对象放置在另一个对象旁边(全局世界位置)

  9. 9

    使用underscore.js在另一个对象中查找一个对象

  10. 10

    如何使用Vue.js制作待办事项从一个列表移动到另一个列表的动画?

  11. 11

    JS:使用重命名的属性将一个对象分解为另一个对象

  12. 12

    如何在Vue Js中将数组项移动到另一个数组

  13. 13

    JS-如何将JSON对象的项目移动到另一个位置

  14. 14

    如何在React JS中用来自另一个对象的数据填充对象

  15. 15

    将一个JS对象转换为另一个

  16. 16

    将特定属性从一个对象移动到另一个对象

  17. 17

    THREE.js-仅在另一个对象前面时才渲染对象

  18. 18

    将属性从一个对象移动到Javascript中的另一个对象

  19. 19

    如果一个对象在js中创建另一个对象,则子对象可以调用父对象吗?

  20. 20

    如何访问另一个JS对象中的匹配对象属性

  21. 21

    Meteor.js将项目从一个集合移动到另一个集合

  22. 22

    将 JS 子对象合并成一个带有连接键的 JS 对象

  23. 23

    如何将 express.js 响应对象传递给另一个模块

  24. 24

    在fabric.js 中围绕另一个对象旋转另一个独立对象

  25. 25

    JS 将一个对象复制到另一个对象

  26. 26

    如何将一个 JS 对象的数据添加到另一个

  27. 27

    将 JS 对象数组推送到具有匹配对象键的另一个对象数组

  28. 28

    JS通过另一个对象数组过滤对象数组

  29. 29

    尝试使用 node.js 和 exec + aws cli 将所有文件从一个 S3 存储桶移动到另一个存储桶

热门标签

归档