JavaScript:在`if`语句中工作的`for循环`在`trinary`语句中不起作用?为什么呢?

时间:2015-12-15 19:03:57

标签: javascript if-statement ternary-operator

我刚刚接受了ternary语句的概念,并尝试使用它来代替我熟悉的if / else if / else语句。但代码似乎有语法错误。什么是ternary语句无法执行if语句可以执行的操作?我想知道ternary语句是否更适合执行简单的命令。

'bin'数组是一个子数组的集合,包含从'inventory'数组中丢弃的项目,由splicepush方法提供。

var bin = [ ['Orichalcum'], ['Rapier', 'Panacea'], ['Bow'], ['Antidote', 'Cheese', 'Whip'],  
['Elixir', 'Herb'], ['Timbrel', 'Dagger', 'Boomerang'] ];


var message = (! bin.length) ?

     'No items have been removed.'

    : (bin.length === 1) ?

         bin[0].length + ' items have been removed.'

        : (
            for (var i = 1; i < bin.length; i++) {
                for (var j = 0; j < bin[i].length; j++) {
                    bin[0].push(bin[i][j]);
                }
            },

            bin[0].length + ' items have been removed.'
        );


alert(message);

1 个答案:

答案 0 :(得分:3)

? :operator是表达式,而不是语句。这意味着您不能在其中嵌套其他语句(例如for)。