jQuery - 获取多个对象的值

时间:2013-10-16 01:59:57

标签: jquery

我有一个声明其他对象的对象,然后我循环了一系列输入。这些输入中的每一个都有一个父div,它将它们包含在“信用卡,现金和债务”中。

var paymentObj = {
    credit: {},
    cash: {},
    debt: {}
};

$('.payments input').each(function(){
    var paymentCategory = $('input[class*="filter-section-"]').attr('class').match(/filter-section-(.*)/)[1];
    var paymentName = this.id;
}

如果我执行 console.log(paymentObj)。我得到的价值如下:

Object { credit={visa=true, mastercard=false, amex=true}}, cash={}, debt={mastercard=true, amex=false}}

我如何获得信用对象的价值?如果在信用对象中将某些内容设置为true,则我真的希望返回以逗号分隔。 签证,美国运通

我通过代码示例学得最好,所以请包含代码示例。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

填充值后,您可以在paymentObj.credit对象上使用.map()以获取逗号分隔的字符串

var credits = $.map(paymentObj.credit, function(a, b){
    return a ? b : undefined;
}).join(',')
console.log(credits)

演示:Fiddle

答案 1 :(得分:0)

就这样,非jquery的具体方式就在这里:

var values = [];
for(var key in paymentObj.credit) {
    if(paymentObj.credit.hasOwnProperty(key)) {
        if(paymentObj.credit[key]) {
            values.push(key);
        }
    }
}

console.log(values.join(','));

或者,根据您的浏览器支持要求,您可以放弃hasOwnProperty

var values = [];
for(var key in paymentObj.credit) {
    if(paymentObj.credit[key]) {
        values.push(key);
    }
}

console.log(values.join(','));