2017-01-31 5 views
0

私はドキュメントhereを見ていますが、私が探しているものが見つかりません。Javascript - Can Array.prototype.findは、検索するパラメータを取る

var valueToSearchFor = "something" 

function SearchArray(currentIndex, valueToSearchFor){ 
    return currentIndex.PropertyName === valueToSearchFor; 
} 

var attribute = myArray.find(SearchArray(valueToSearchFor)); 

いうより:私の場合は

var valueToSearchFor = "something" 

function SearchArray(currentIndex){ 
    return currentIndex.PropertyName === valueToSearchFor; 
} 

var attribute = myArray.find(SearchArray); 

valueToSearchForはスレッドセーフではない私が達成したい何

はこのようなものです。何か不足していますか?

しかしかかわらず、あなたはまだカリー化してこの種の機能を達成することができますvalueToSearchForはスレッドセーフではありません私の場合は

+4

* "私の場合、値のToSearchForはスレッドセーフではありません" *何か?そんなことがあるものか? –

+1

"_'valueToSearchFor'がスレッドセーフではないという意味の具体的な理由を含めることができますか?" JavaScriptはシングルスレッドです –

+0

同様の質問はちょうど質問されました:http://stackoverflow.com/questions/41947031/passing-additional-parameters-in-higher-order-functions。たぶん、そこにあなたの答えを見つけることができます。 – mrlew

答えて

1

私はであなたが何を意味するかわからないんだけど

var valueToSearchFor = "something"; 

function createSearchArray (valueToSearchFor) { 
    return function (currentIndex) { 
    return currentIndex.PropertyName === valueToSearchFor; 
    } 
} 

var attribute = myArray.find(createSearchArray(valueToSearchFor)); 

ここで考えているのは、変数valueToSearchForを使用して探している機能を作成することです。この機能を.find()に返します。

+0

私の場合は、順番に値を返すことが保証されていないWebソケットを使用しています。開いている接続はすべて同じコールバックを持っています – user1234

+0

@ user1234ああ。私が提供したサンプルコードは関数ビルダーに似ていて、 'createSearchArray'にいくつかの' valueToSearchFor'の引数を与え、 '.find()'で使うことのできる '' search array ''タイプの関数を返します。あなたの問題に助けてください? –

+1

[部分的なアプリケーション]のための3つの喝采(http://benalman.com/news/2012/09/partial-application-in-javascript/)! – Sukima

関連する問題