如何在JavaScript中高效地连接N个对象数组?
这些数组是可变的,结果可以存储在其中一个输入数组中。
如何在JavaScript中高效地连接N个对象数组?
这些数组是可变的,结果可以存储在其中一个输入数组中。
let get_fruits = [...get_fruits , ...DBContent.fruit];
https://dev.to/uilicious/javascript-array-push-is-945x-faster-than-array-concat-1oki
看起来正确答案在不同的JS引擎中有所不同。以下是我从{{link1:ninjagecko答案中链接的测试套件}}中得到的结果:
[].concat.apply
在Windows和Android上的Chrome 83中最快,其次是reduce
(速度慢约56%);concat
在Mac上的Safari 13中最快,其次是reduce
(速度慢约13%);reduce
在iOS上的Safari 12中最快,其次是循环的concat
(速度慢约40%);push
在Windows上的Firefox 70中最快,其次是[].concat.apply
(速度慢约30%)。请记住,concat数组也可以有重复项,需要对项目进行排序。
步骤1
连接数组
let insights = emptyInsights.concat(defaultInsights, softInsights);
步骤2
删除重复项
insights = [...new Set(insights)];
步骤三
对数组进行排序
insights = insights.sort((a: Insight, b: Insight) =>
a.publishedDate > b.publishedDate ? -1 : 1
);