0

我有一个声明其他对象的对象,然后循环一系列输入。这些输入中的每一个都有一个父 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,我真的很想返回。签证,美国运通

我通过代码示例学得最好,所以请包括代码示例。任何帮助是极大的赞赏!

4

2 回答 2

1

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

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

演示:小提琴

于 2013-10-16T02:19:07.360 回答
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(','));
于 2013-10-16T02:23:41.203 回答