代码之家  ›  专栏  ›  技术社区  ›  snazzybouche

添加条件数组元素

  •  1
  • snazzybouche  · 技术社区  · 8 年前

    假设我有一个数组定义

    var array = [
      "One",
      "Two",
      "Three",
    ]
    

    …但我只希望在另一个变量为真时添加“三”。

    var array = [
      "One",
      "Two",
      (addThree ? "Three" : undefined),
    ]
    

    问题是,如果addthree为false,那么当我只希望数组为[“one”,“two”,undefined]时,该数组将变为[“one”,“two”]。

    3 回复  |  直到 8 年前
        1
  •  2
  •   NullPointer    8 年前

    spread operator (...)

    var addThree=false;
    const array = [
      "One",
      "Two",
      ...(addThree ? ['Three'] : []),
    ]
    console.log(array);

    var addThree=true;
    
    
    var array = [
     "One",
      "Two",
      (addThree ? 'Three' : undefined)
    ].filter(Boolean);
    console.log(array);

    var addThree=true;
    const array = [];
    array.push('One');
    array.push('Two');
    if (addThree) {
            array.push('Three');
    }
    console.log(array);
        2
  •  4
  •   Nina Scholz    8 年前

    Array#concat conditional (ternary) operator ?: addThree

    var addThree = false,
        array = ["One", "Two"].concat(addThree ? "Three" : []);
        
    console.log(array);
        3
  •  2
  •   Blue    8 年前

    var array = [
      "One",
      "Two",
    ];
    
    if (addThree) {
       array.push("Three");
    }