私はWebアプリケーション用のmockDataを使用しています。ネストされたオブジェクトをループするようにしています。私の問題は、forループは動作しますが、array.mapではなく、なぜか分からないということです。ここでJavascriptループ:forループは動作しますが、マップは動作しませんか?
は、ループのためである:私は特定のロードしようとしている
fakeChartData = [
{
id: '232fsd23rw3sdf23r',
title: 'blabla',
poll: [{}, {}]
},
{
id: '23dgsdfg3433sdf23r',
title: 'againBla',
poll: [{}, {}]
}
];
:
fakeChartData.map(data => {
data.poll.map(data => {
if (data.id === id) {
return data;
}
});
});
マイデータ構造:
for (let i = 0; i < fakeChartData.length; i++) {
for (let j = 0; j < fakeChartData[i].poll.length; j++) {
if (fakeChartData[i].poll[j].id === id) {
return fakeChartData[i].poll[j]
}
}
}
そしてここでは、マップのループでありますonClickメソッドで渡されたIDを持つオブジェクト。ここ は、フル機能である:
export const fetchPollOptById = (id) =>
delay(500).then(() => {
for (let i = 0; i < fakeChartData.length; i++) {
for (let j = 0; j < fakeChartData[i].poll.length; j++) {
if (fakeChartData[i].poll[j].id === id) {
return fakeChartData[i].poll[j]
}
}
}
});
あなたはデータ構造の例を提供する必要があります。 – Hitmands
これはどのように実行されますか?私たちのテストではarray.mapの使用に問題があります。それらはjasmineとphantom.jsを使用して実行されます。 Phantom.jsがarray.mapをサポートしていないようです – mortb
'map'内の' return'文が何を返すのかを考えてみましょう。 –