制作数组,比较并从中获取价值

时间:2011-10-14 13:00:47

标签: jquery arrays

我想要达到的目的是:

    var price = $.cookie('cur_price'); //this is USD, EUR or GBP
    var price = 'USD'; //this could be an outcome

        var USD = 30; //to put this in a array
        var EUR = 24; //seems the right way
        var GBP = 30;

           var active = Get from array the value where price == array value

    $('#price').html(active);

你怎么能用jQuery做到这一点?

3 个答案:

答案 0 :(得分:3)

创建一个类似于关联数组的对象来存储价格:

var price = $.cookie('cur_price'); //this is USD, EUR or GBP
var prices = {
    'USD': 30,
    'EUR': 24,
    'GBP': 30
    };
$('#price').html(prices[price]);

答案 1 :(得分:1)

我不使用数组,而是使用对象文字,因为它允许您将键映射到值,而不是任意数组索引。

var price = $.cookie('cur_price');
var map = {
    USD: 30,
    EUR: 24,
    GBP: 30
};

var active = map[price];

$('#price').html(active);

此外,要考虑尚未设置cur_price的情况(首次访问?),您可能需要提供默认值:

var price = $.cookie('cur_price');
var map = {
    USD: 30,
    EUR: 24,
    GBP: 30
};

if (price == null) {
    price = 'GBP';
}

var active = map[price];

$('#price').html(active);

此外,请注意,客户端可以自由编辑JavaScript;你应该验证服务器上的所有输入(特别是涉及金钱的时候!)。

答案 2 :(得分:0)

var cookie = 'EUR';
var USD = 30; //to put this in a array
var EUR = 24; //seems the right way
var GBP = 30;
var active;

switch(cookie) {
    case 'EUR':
        active = EUR;
        break;
    case 'USD':
        active = USD;
        break;
    case 'GBP':
        active = GBP;
        break;
   default:
        active = -1; // maybe?
        break;
}
$('#price').html(active);