我有一个声明其他对象的对象,然后我循环了一系列输入。这些输入中的每一个都有一个父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,则我真的希望返回以逗号分隔。 签证,美国运通
我通过代码示例学得最好,所以请包含代码示例。非常感谢任何帮助!
答案 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(','));