首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lineColor ={ red:'blue',blue:'red‘}[ var ];

lineColor ={ red:'blue',blue:'red‘}[ var ];
EN

Stack Overflow用户
提问于 2015-07-02 17:58:06
回答 3查看 98关注 0票数 0
代码语言:javascript
复制
 $('#toggle-linecolor').click(function () {
        chart.yAxis[0].update({
            lineColor: lineColor
        });
        lineColor = { red: 'blue', blue: 'red' }[lineColor];
    });
EN

回答 3

Stack Overflow用户

发布于 2015-07-02 18:02:33

它在'red''blue'之间切换。

假设你是这样开始的:

代码语言:javascript
复制
var lineColor = 'red';

执行此操作会将lineColor更改为“blue”

代码语言:javascript
复制
lineColor = { red: 'blue', blue: 'red' }[lineColor];
// The property [red] of that object has a value of 'blue'

lineColor // <--- 'blue'

再次执行它,它会将值切换为“red”

代码语言:javascript
复制
lineColor = { red: 'blue', blue: 'red' }[lineColor];
// The property [blue] of that object has a value of 'red'

lineColor // <---- 'red'
票数 3
EN

Stack Overflow用户

发布于 2015-07-02 18:02:11

它交换/切换颜色。红色-->蓝色,蓝色-->红色

代码语言:javascript
复制
lineColor = 'blue';
lineColor = { red: 'red', blue: 'blue' }[lineColor]; // 'red'

等同于

代码语言:javascript
复制
lineColor = { red: 'red', blue: 'blue' }.blue; // 'red'
票数 0
EN

Stack Overflow用户

发布于 2015-07-02 18:08:48

这是一种聪明的方法,可以将toggle实现为one liner。你可以像这样解压它:

代码语言:javascript
复制
var lineColor = 'red';
function toggleColor(){
    chart.yAxis[0].update({
        lineColor: lineColor
    });
    var opposites = { red : 'blue', blue : 'red' };
    if( lineColor == 'red' ){
        lineColor = opposites.red; // assigns 'blue' to lineColor
    }
    else if( lineColor == 'blue' ){
        lineColor = opposites.blue; // assigns 'red' to lineColor
    }

    // but you can shorten the above if/else statement to:
    lineColor = opposites[ lineColor ];

    // which can be shortened to this if you don't want to 
    // assign the opposites object to a variable:
    lineColor = { red: 'blue', blue: 'red' }[lineColor];
}

注释后编辑:可以使用两种以上的颜色创建循环序列:

代码语言:javascript
复制
opposites = { red : 'green', green : 'yellow', yellow : 'blue', blue : 'red' };

因此,如果当前颜色是红色,则更改为绿色,如果是绿色,则更改为黄色,如果是黄色,则更改为蓝色,如果是蓝色,则更改为红色:http://jsfiddle.net/p3bw04vw/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31181444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档