Я думаю, что самый простой способ - использовать .concat()
, например, так:
Причина, по которой это работает, заключается в том, что concat (в отличие от push) передает содержимое массива другомумассив, а не сама ссылка на массив.Конкатенируя пустой массив, это, по сути, невозможно, если v
является ложным.Это желаемый функционал, да?
var arr = [1,2,3];
var v = null;
var x = 4;
arr = arr.concat(v || []);
console.log(arr);
arr = arr.concat(x || []);
console.log(arr);
В вашем конкретном случае:
Object.entries(props).reduce((acc, [k, v]) => acc.concat(v || []), []);