0

jquery.map関数について少し混乱しています。

私は配列を言いmyArray = ["1", 3, "a", 5]ます。

;$.map().get().join(',')の結果を取得するために使用できますか?[1, 3, 5]

$(myArray).map(function() { 
    if (!isNaN(this)){  
        return this
    }       
}).get().join(',');

上記のコードは["1","3","a","5"]

http://jsfiddle.net/kkgian/khurZ/

TIA

4

1 に答える 1

3

.map()元の配列は変更されません。コードは返された値をキャプチャしないため、それを破棄するだけです。

$.grepの代わりに(名前の悪い)関数を使用してください.map()。引数のおかげでinvert、無名関数を使用する必要さえありません。isNaN述語として直接使用できます。

var filteredArray = $.grep(myArray, isNaN, true);

http://jsfiddle.net/mattball/nzeBZ/

NB は、数値に合理的に強制できる文字列であるためにisNaN('1')返されます。それが受け入れられない場合は、より適切なフィルター述語を使用してください。ただし、実際に数値の配列が必要なのか、文字列だけが必要なのかは少しわかりません。false'1''[1, 3, 5]'

于 2012-07-16T13:30:23.143 に答える