Javascript forEach不是对象合并后的函数
我根据创建了这个方法,我将它修改为递归的。这似乎可行,但我遇到的问题是,我得到了一个错误,上面说: 未捕获类型错误:this.config.routes.forEach不是函数 我正在合并以下两个对象:Javascript forEach不是对象合并后的函数,javascript,Javascript,我根据创建了这个方法,我将它修改为递归的。这似乎可行,但我遇到的问题是,我得到了一个错误,上面说: 未捕获类型错误:this.config.routes.forEach不是函数 我正在合并以下两个对象: { maxLoadLoop: 5, author: {color: "red"} } 这个(json转换为object): 这两个似乎融合得很好,只是我得到了上面提到的错误…我更改了第2行: var obj3 = (!obj1 && Array.isArray(
{
maxLoadLoop: 5,
author: {color: "red"}
}
这个(json转换为object):
这两个似乎融合得很好,只是我得到了上面提到的错误…我更改了第2行:
var obj3 = (!obj1 && Array.isArray(obj2)) ? [] : {};
如果obj1不存在且obj2为数组,则输出也应为数组
如果要处理obj1和obj2都是数组的情况,则需要做更多的工作。Setting
obj3={}
意味着您将丢失任何数组。原型
方法,因为它不是数组。预期的最终结果是什么?@Phil我该怎么做才能保留这些信息?您的代码不会在任何地方调用。forEach
。将obj3
实例化为与obj1
或obj2
类型相同的对象。除非您告诉我们什么是obj1
和obj2
,否则您可能会得到一个非常具体的答案@zerkms:大概OP正在使用某种web框架,它在某处调用this.config.routes.forEach
;OP将this.config.routes
指定为两个现有路由集合的合并。在本例中可能会起作用,因为数据似乎仅限于没有自定义原型的基本数据类型。但值得注意的是,如果允许的话,它将失败。
{
"author": {
"name": "Me",
"email": "my email"
},
"routes": [
{
"route": "/home",
"template": "/templates/home.html",
"default": true
},
{
"route": "/games",
"template": "/templates/games.html"
}
]
}
var obj3 = (!obj1 && Array.isArray(obj2)) ? [] : {};