1
var send_value = [current_site_id, current_site_name, current_site_description];
console.log(send_value);
send_value = jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete');
console.log(send_value);

結果は

["12"、 "qwrqweqwer"、 "qwreqwr"]
4

どこが間違っているの?

PS。申し訳ありませんが、私の間違いは、send_value =それがどのようにそこに到達したのか理解できません

4

3 に答える 3

3

この行は、の戻り値をにsend_value = jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete');割り当てます。何もプッシュしません。仕様に示されているように、戻り値は配列オブジェクトの新しい長さです。pushsend_value

これを試して:

send_value.push(jQuery(this).is(':checked') ? 'add' : 'delete');

ターナリの結果の値をプッシュする
読みやすい場合は、ターナリをステートメントではなく式に変換できます。

(jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete'));//<-- notice surrounding parentheses

しかし、率直に言って、読みやすさが心配な場合は、私見で三者択一を排除するのが最善です。

于 2012-11-23T11:44:15.637 に答える
3

pushプッシュが実行された後の配列の長さを返します。これを試して:

var send_value = [current_site_id, current_site_name, current_site_description];
console.log(send_value);
send_value.push( jQuery(this).is(':checked') ? 'add' : 'delete' );
console.log(send_value);

さらに、配列ではなくオブジェクトを使用する必要があります。..send_value.site_idよりも読みやすいsend_value[0]

于 2012-11-23T11:44:39.703 に答える
1
var result = jQuery(this).is(':checked') ? 'add' : 'delete';
    send_value.push(result);
于 2012-11-23T11:46:21.270 に答える