Lever求人投稿APIを使用して、JSONの結果を場所で並べ替えて取得します Shopify ページ。
これが codepen で、ここが [〜#〜] json [〜#〜] です。
コードペンの38行目に次のコードを追加して、チームの値を取得しようとしましたが、期待どおりに出力されません(1行に1文字が表示されるため、役に立ちません)。
for (var x in _data[i].postings[j].categories.team)
たぶんそれは非常に単純なものだと確信していますが、私は間違いなくJavaScriptの人ではありません。どんな助けでも大歓迎です!
JSON出力が
outJSON=
[ {
team: "TeamA",
name: "Ahmed",
field3:"val3"
},
{
team: "TeamB",
name: "Ahmed",
field3:"val43"
},
{
team: "TeamA",
name: "Ahmed",
field3:"val55"
},
]
次に、以下のデモのgroupBy
関数を参照してください。
outJSON= [ {team: "TeamA",name: "Ahmed",field3:"val3"}, {team: "TeamB",name: "Ahmed",field3:"val43"}, {team: "TeamA",name: "Ahmed",field3:"val55"} ]
var groupBy = function(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).Push(x);
return rv;
}, {});
};
var groubedByTeam=groupBy(outJSON, 'team')
console.log(groubedByTeam);
次に、カテゴリ(チーム)をループする場合は、配列内のすべてのカテゴリを取得します。
Object.keys(groubedByTeam) // return ["TeamA","TeamB"]
次に:
Object.keys(groubedByTeam).forEach(function(category){
console.log(`Team ${category} has ${groubedByTeam[category].length} members : `);
groubedByTeam[category].forEach(function(memb,i){
console.log(`---->${i+1}. ${memb.name}.`)
})
});