如何在javascript中合并两个可选数组

时间:2017-12-05 17:40:06

标签: javascript arrays typescript

如何在Javascript中合并两个可选数组?这是我到目前为止最好的:

const trades = this.position.trades; // trades or maintenance can be undefined
const maintenance = this.position.maintenance;
const principals = [... trades ? trades : [], ... maintenance ? maintenance : []];

寻找优雅的解决方案,同时处理任何数组都可以是未定义的事实(也就是可选的)。谢谢!

PS:我使用的是Typescript 2.6 / ES6

2 个答案:

答案 0 :(得分:5)

你可以这样做。 ||如果第一个操作数为 falsy ,则会返回[]

const trades = this.position.trades || []; 
const maintenance = this.position.maintenance || [];
const principals = [...trades, ...maintenance];

或者代替spread运算符,只需使用Array#concat

const trades = this.position.trades || []; 
const maintenance = this.position.maintenance || [];
const principals = trades.concat(maintenance);

答案 1 :(得分:2)

您可以将||运算符与已使用的spread运算符结合使用:

const principals = [...this.position.trades || [], ...this.position.maintenance || []];