json配列の各列にユニークな項目を取得しようとしています。私はこれを変換したい:キーに基づいてjsonarrayをlodashアンダースコアで分割する
VARアイテム= [{ "名前": "タイプ1"、 "ID":13}、{ "名前": "タイプ2"、 "ID": 14} {"name": "Type 2"、 "id":{"name": "type"、 "id":14}、{"name": "Type 3"、 "id":13} 12}、{"name": "Type 3"、 "id":12}];
に
[{ "タイプ1"、 "タイプ2"、 "タイプ3"}、{12,13,14}]
これは私が試したものです:
var uniq1 = _.map(_.uniqBy(items, 'id'), 'id');
var uniq2 =_.map(_.uniqBy(items, 'name'), 'name')
console.log(uniq1,uniq2)
フィドル:https://jsfiddle.net/yogeshwaran/5ntfzss1/
しかし、これはトンと思われます私の実際のデータセットがはるかに大きいので、私のユースケースでは非効率的な解決策になります(各要素に6つのキーがある100000要素)。それぞれのキーに固有の値をすべて取得する方法はありますか?私は毎回セット全体を反復したくありません。私の理想的なアプローチは次のとおりです。 1.キーに基づいて配列を分割します。 2.分割のそれぞれに固有のものを見つけます。 3.結果を結合します。
ありがとうございました。
jsより効率的になるように設定する(ブラウザサポートに注意してください) – juvian
Webアプリケーション用のブラウザで行うのか、JSONデータを処理するのですか?後者の場合、大規模なJSONデータセットの処理に 'jq'を使用することをお勧めします。たくさんのヘルパー関数(https://stedolan.github.io/jq/manual/#TypesandValues)があります。 – aug