90814


# 該当原始コード

[code]

    function test(a, b, c){
     a[b] = c % 2 === 0 ? "グースー" : here!!!!!
    }
    
[/code]

上のようなコードの場合、「:」の後には必ず何かしら代入するものを書かなければなりませんが、何も代入したくありません。  
nullやundefinedではそれが代入されますし、もう素直にifを使うべきですか？


CC BY-SA 4.0
2022-08-28T09:40:51.587
90812
2022-08-28T23:20:36.007
53242
question
javascript
三項演算子で配列操作するときに何も代入したくない


三項演算子で条件が真のときだけ何かをすると言うのは無理そうなのでif文を使うことにします


CC BY-SA 4.0
2022-08-28T12:34:15.363
90813
2022-08-28T12:34:15.363
53242
90812
answer


条件演算子を利用する上で省略可能なオペランドは無いです([参考](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator))。

実行前後で値が変わってほしくない、ということであれば、自身を代入すれば良いかと思います。

[code]

    function test(a, b, c) {
      a[b] = c % 2 === 0 ? "グースー" : a[b];
    }
    
    const a = ["キスー", "キスー"];
    
    test(a, 0, 0);
    test(a, 1, 1);
    
    console.log(a);
[/code]


CC BY-SA 4.0
2022-08-28T19:36:56.790
90814
2022-08-28T19:36:56.790
2808
90812
answer


[論理積](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_AND)を使うのはいかがでしょうか。

[code]

    function test(a, b, c) {
      c % 2 === 0 && (a[b] = "グースー");
    }
    
    const a = ["キスー", "キスー"];
    
    test(a, 0, 0);
    test(a, 1, 1);
    
    console.log(a);
[/code]


CC BY-SA 4.0
2022-08-28T23:20:36.007
90815
2022-08-28T23:20:36.007
7997
90812
answer