JS:空安全数组连接

时间:2018-08-23 18:39:36

标签: javascript typescript ecmascript-6

给出:

var a = [1, 2, 3]
var b = null

我需要:

var c = [...a, ...b]

..,但是当ab当然为空时,则不起作用。因此,在此示例中,不应仅添加b,从而得到c = [1, 2, 3]。如果ab均为空(或未定义),则结果应为[]。

有什么捷径可以避免必须写两个if语句?

4 个答案:

答案 0 :(得分:11)

您可以使用|| operator

var a = [1, 2, 3]
var b = null

var c = [...a||[], ...b||[]]

console.log(c)

答案 1 :(得分:1)

var c = [...(a || []), ...(b || [])]

这样,如果任何数组为null或未定义,它将被一个空数组替换

答案 2 :(得分:1)

您可以使用过滤器

var a = [1, 2]
var b = null
var c = [3, null, 4]

var d = []
d.concat(a,b,c).filter(item => item !== null) // [1, 2, 3, 4]

console.log("Array", d)

答案 3 :(得分:0)

您可以使用三元运算符来验证并合并这样的数组

    const a = [1,2,3,4,5];
    const b =  null;
    const c =  [6,7,8,9];
    const final = [...a ? a :[],...b ? b : [],...c ? c : []];
    console.log(final)

Click here for code snippet