2017-02-07 10 views
0

にネストされたJSONを取得するにはJavaScriptを使用して...私が欲しいものこれは私が持っているものであるカンマ区切りリスト

[{ 
    "programName": "Testing 102", 
    "recommendedComparisons": [{ 
    "programName": "Testing 101", 
    "id": 2 
    }, { 
    "programName": "Testing 401", 
    "id": 4 
    }], 
    "id": 1, 
    "programId": 3 
}, { 
    "programName": "Testing 101", 
    "recommendedComparisons": [{ 
    "programName": "Testing 102", 
    "id": 3 
    }], 
    "id": 9, 
    "programId": 2 
}] 

はrecommendedComparisonsの二つのリストです。

Testing 101, Testing 401Testing 102

私は簡単な方法がなければならないと確信しています。あなたが探しているものを

+0

試したコードと期待通りの結果を表示してください。 – charlietfl

+1

わかりません。 JSON.parse()だけで何が問題になっていますか? – RayfenWindspear

+0

@RayfenWindspear何も、Jeanは全くトピックを研究しておらず、ちょうど答えにまっすぐに向っています。これは、JSONを学ぶ際の対処方法を学ぶ最初のものの1つです。 – Nol

答えて

0
  1. 探しているものであると考えてい

    は、オブジェクトを変換することができます。結果の2のリストを取得するにはDestructuringを使用し

    var recommendedComparisons = data.map(x => x.recommendedComparisons.map(x=>x.programName));

  2. var [firstList,secondList] = recommendedComparisons;

var data = [{ 
 
    "programName": "Testing 102", 
 
    "recommendedComparisons": [{ 
 
    "programName": "Testing 101", 
 
    "id": 2 
 
    }, { 
 
    "programName": "Testing 401", 
 
    "id": 4 
 
    }], 
 
    "id": 1, 
 
    "programId": 3 
 
}, { 
 
    "programName": "Testing 101", 
 
    "recommendedComparisons": [{ 
 
    "programName": "Testing 102", 
 
    "id": 3 
 
    }], 
 
    "id": 9, 
 
    "programId": 2 
 
}]; 
 

 
var recommendedComparisons = data.map(x => x.recommendedComparisons.map(x=>x.programName)); 
 

 
var [firstList,secondList] = recommendedComparisons; 
 
console.log(firstList); 
 
console.log(secondList);

0
var data = [{ 
    "programName": "Testing 102", 
    "recommendedComparisons": [{ 
    "programName": "Testing 101", 
    "id": 2 
    }, { 
    "programName": "Testing 401", 
    "id": 4 
    }], 
    "id": 1, 
    "programId": 3 
}, { 
    "programName": "Testing 101", 
    "recommendedComparisons": [{ 
    "programName": "Testing 102", 
    "id": 3 
    }], 
    "id": 9, 
    "programId": 2 
}]; 

var result = data.map(function(item) { 
    return item.recommendedComparisons.map(function(comp) { 
     return comp.programName; 
    }); 
}); 
0

アレイオブジェクトのマップ機能です。あなただけのプログラム名を探している

は比較をお勧めします。そのためには、比較を行うために1つのマップ関数が必要です。次に、マップを再度呼び出す必要があります。その関数呼び出しの中で、サブアレイのマップを呼び出してプログラム名を返します。

カンマ区切りリストを記述しているので、配列自体を返さない方がよいでしょう。代わりに、新しい文字列を作成し、サブラインをコンマで結合し、新しい行を追加します。私は、これはあなたがmap機能を利用して

var array = [{"programName":"Testing 102","recommendedComparisons":[{"programName":"Testing 101","id":2},{"programName":"Testing 401","id":4}],"id":1,"programId":3},{"programName":"Testing 101","recommendedComparisons":[{"programName":"Testing 102","id":3}],"id":9,"programId":2}] 
 

 
var results = array.map(function(a) { return a.recommendedComparisons 
 
    }).map(function(b) { 
 
     return b.map(function(c) { 
 
      return c.programName; 
 
     }); 
 
    }); 
 

 
var str = ""; 
 

 
for (var i = 0; i < results.length; i++) { 
 
    str += results[i].join(',') + "\n" 
 
} 
 

 
console.log(str);

0

私はまだこれをテストすることができていないが、私はこれが正しいと確信しています。私は今それをテストします。

const list = [ 
    { 
    "programName":"Testing 102", 
    "recommendedComparisons":[ 
     { "programName": "Testing 101", "id":2 }, 
     { "programName": "Testing 401", "id":4 } 
    ], 
    "id":1, 
    "programId":3 
    }, 
    { 
    "programName":"Testing 101", 
    "recommendedComparisons":[ 
     {"programName":"Testing 102","id":3} 
    ], 
    "id":9, 
    "programId":2 
    } 
]; 

let listOfComparisonLists = []; 

list.map((program) => { 
    const programNames = program.recommendedComparisons.map((comp) => comp.programName); 

    listOfComparisonLists.push(programNames); 
}); 

console.log(listOfComparisonLists); // [['Testing 104', 'Testing 401'],['Testing 102']] 
+0

3時間後...あなたのコードが広告として機能するかどうかを確認しましたか? – AmericanUmlaut

+0

うん、それは動作します。私は誤って 'push 'の代わりに' append'を置きました。 – Louie4

関連する問題