2017-05-21 20 views
0

以下の例では、getData();を使用すると、新しい関数内のオブジェクトマップに含まれるデータにアクセスすることができます。 useData(); - それはgetData();の引数ですか?ある関数から別の関数に最初の関数の引数であるデータを渡す方法

const getData = (useData) => { 

    const myData = { 
    0: { title: 'Hello' }, 
    1: { title: 'World!' } 
    }; 

    Object.keys(myData).map((item) => { 
    useData(); 
    }); 
} 

getData(console.log(
    /** 
    * Somehow access data represented by `myData` and `item` 
    * in above object map along the lines of `myData[item].title` 
    */ 
)); 

答えて

1

このようなことを達成したいですか?

useDataには、map内の引数を使用して呼び出すことができます。この場合、getData関数の引数としてconsole.logのような関数を呼び出すことはできません。

const getData = useData => { 
    const myData = { 
     0: { title: "Hello" }, 
     1: { title: "World!" }, 
    }; 

    Object.keys(myData).map(item => { 
     useData(myData[item]); 
    }); 
}; 
getData(console.log); 
0

はい、これがデフォルトの動作です。しかし、関数呼び出し(console.log())の代わりにfunctionconsole.log)を渡し、後で呼び出す必要があります。

const getData = (useData) => { 
 

 
    const myData = { 
 
    0: { title: 'Hello' }, 
 
    1: { title: 'World!' } 
 
    }; 
 

 
    Object.keys(myData).map((item) => { 
 
    useData.apply(console, [item]); 
 
    useData.apply(console, [ myData[item].title ]); 
 
    //or useData(myData[item].title) 
 
    }); 
 
} 
 

 
getData(console.log);

getData(console.log('something')); 

と同じである。

let x = console.log('something'); 
getData(x); 
関連する問題