【发布时间】:2017-01-06 12:36:53
【问题描述】:
假设我们在数组上有一个 java 脚本对象,如下所示:
假设我有一个可变的书籍,其中包含书籍的集合
var books ={
{
id: 1,
name: 'Physics'
}
{
id: 2,
name: 'Mathematics'
}
{
id: 3,
name: 'Chemistry'
}
}
假设每个作家在他们的信息中都有一个像这样的书名
var writers ={
{
id: 123,
name: 'William Jeff',
book: 'Physics'
},
{
id: 123123,
name: 'John Doe',
book: 'Mathematics'
},
{
id: 1212312323,
name: 'asd Doe',
book: 'Chemistry'
},
{
id:123123,
name: 'ASD DAS',
book:'Physics'
}
}
我想将这些 javascript 对象合并到这个:
var result = {
{
id: 1,
name: 'Physics',
writers : {
{
id: 123,
name: 'William Jeff',
},
{
id:123123,
name: 'ASD DAS',
}
},
{
id: 2,
name: 'Mathematics'
writers : {
{
id: 123123,
name: 'John Doe',
}
},
}
{
id: 3,
name: 'Chemistry',
writers : {
{
id: 1212312323,
name: 'asd Doe',
},
},
}
}
我尝试使用下划线 foreach,但它变得非常复杂,比如循环内的循环太多。我认为肯定有很好的方法来做到这一点:)
还有吗?
谢谢
【问题讨论】:
-
你可以只使用 2 个
for循环,这并不复杂 -
@BasPauw 你能指导我怎么做吗?
-
books.forEach(b => b.writers = writers.filter(w => w.book == b.name))就是这样 -
书籍和作者实际上是数组吗? '我们在数组上有一个 java 脚本对象'?
-
@Sinisake 数组上的对象
标签: javascript