Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript对象数组转换_Javascript_Node.js_Object_Orm - Fatal编程技术网

JavaScript对象数组转换

JavaScript对象数组转换,javascript,node.js,object,orm,Javascript,Node.js,Object,Orm,我不太确定我该给这个问题起什么名字,所以请随意编辑标题 我正在运行一个angular应用程序,并使用node.js与express和Sequalize(用于我的ORM) 现在,许多人可能知道,当您使用ORM时,您希望在另一个对象的内部收集对象,例如用户对象的内部可能有一个国家对象,如下所示: user = {id: 222, username: 'Marc', name: 'Marc Ras', country: {id: 1, code: 'DK', name: 'Denmark'}} 现在

我不太确定我该给这个问题起什么名字,所以请随意编辑标题

我正在运行一个angular应用程序,并使用
node.js
express
Sequalize
(用于我的
ORM

现在,许多人可能知道,当您使用
ORM
时,您希望在另一个
对象的内部收集
对象
,例如
用户
对象的内部可能有一个
国家
对象,如下所示:

user = {id: 222, username: 'Marc', name: 'Marc Ras', country: {id: 1, code: 'DK', name: 'Denmark'}}
现在这很好。将所有这些对象绑定在一起可以使前端的工作更加轻松

然而,另一种方式是相当烦人的

为了演示的目的,让我们以上面的对象为例。但是让我们添加一个
属性
一个
项目数组

user.items = [{id: 1 , name:'item1'}, {id: 2, name: 'item2'}]
现在,如果我希望将此对象添加到我的数据库中,我会将组合对象发送到我的express route:

var user = {
    id: 222,
    username: 'Marc',
    name: 'Marc Ras',
    country: {id: 1, code:'DK', name: 'Denmark'}
    items: [
        {id: 1, name: 'item1'},
        {id: 2, name: 'item2'}
    ]
}
现在事情变得有点乱了

例如,假设您有下表:

user_has_items
其中的每个记录都有一个
id
用户id
项目id

现在,为了确保
user.items
中的对象与表匹配,您必须通过循环和编辑上面的对象来进行代码体操

例如:

user.items.forEach(function (x) {
    x.item_id = x.id;
    x.id =  null; // To make sure the database does not set the id (since this is auto inc)
    x.user_id = user.id;
})
请注意,上面当然是一个例子,对象越大,它就越复杂

这个过程会导致混乱的代码(至少在我看来),由于这不是我第一次遇到这个问题,我想知道你们中是否有人有任何解决方案,可以做些什么来简化这个过程


我一直在看他们是否有办法做到这一点,但遗憾的是,我找不到任何使这一点变得简单的方法

你应该添加你试图让问题更清楚的代码-“你现在必须通过循环和编辑上面的对象使代码更符合实际”不清楚,例如。@Andy我同意,我会将其添加到我的question@Andy添加了一些代码:)是否希望将用户对象上的items数组重新构造为所需的格式或创建新的对象数组?