【发布时间】:2019-02-06 07:49:37
【问题描述】:
我的第一个数组叫做 feeds:
[
{
_id: '5b8906e81248270685399a9a',
name: 'fin24',
state: 'OK',
status: true,
},
{
_id: '5b8907031248270685399a9b',
name: 'news24',
state: 'OK',
status: true,
}
]
我的第二个数组叫做 feedArticlesCount:
feedArticlesCount: [
{ _id: 5b8907031248270685399a9b,
pending: 21,
approved: 1,
active: 21,
inactive: 1 },
{ _id: 5b8906e81248270685399a9a,
pending: 20,
approved: 0,
active: 20,
inactive: 0 },
{ _id: 5b8664c26d90b107d0952cbe,
pending: 62,
approved: 8,
active: 0,
inactive: 70 },
{ _id: 5b865bf28152610775987d67,
pending: 111,
approved: 30,
active: 0,
inactive: 141 }
]
我想根据匹配的 _id 值将这两个数组组合成一个数组,如果第一个数组中不存在 _id 我想跳过它。
我的预期输出:
[
{
_id: '5b8906e81248270685399a9a',
name: 'fin24',
state: 'OK',
status: true,
pending: 20,
approved: 0,
active: 20,
inactive: 0
},
{
_id: '5b8907031248270685399a9b',
name: 'news24',
state: 'OK',
status: true,
pending: 21,
approved: 1,
active: 21,
inactive: 1
}
]
我尝试了 forEach 和 reduce 方法,但它无法正常工作
我在这里尝试过:
let result = [];
feeds.forEach((itm, i) => {
result.push(Object.assign({}, itm, feedArticlesCount[i]));
});
console.log(result);
这是可行的,但我的名字密钥存储在错误的 _id 位置。
【问题讨论】:
-
通过 id 在错误的地方你的意思是不是第一个?我看不出有什么问题
-
@jonatjano jsbin.com/wufiravefu/edit?js,output 看看这个
-
名字放错地方了
标签: javascript arrays json object