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}}

credit オブジェクトだけの値を取得するにはどうすればよいですか? コンマで区切られたクレジットオブジェクトで何かが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 に答える