2016-07-26 7 views
-1

一意のオブジェクト

以下
{ 
    "payload": [{ 
     "id": "idval1", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval2", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }, 
      { 
       "id": "1236", 
       "value": "Three", 
       "ddid": "dd3", 
       "name": "third value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval3", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval4", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }, 
      { 
       "id": "1236", 
       "value": "Three", 
       "ddid": "dd3", 
       "name": "third value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval5", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }, 
      { 
       "id": "1236", 
       "value": "Three", 
       "ddid": "dd3", 
       "name": "third value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval6", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval7", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }, 
      { 
       "id": "1236", 
       "value": "Three", 
       "ddid": "dd3", 
       "name": "third value" 
      }] 
     }] 
    }] 
} 

は、私が現在のオブジェクト

{ 
    "payload": [{ 
     "id": "idval1,idval3,idval6", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }] 
     }] 
    }, 
    { 
     "id": "idval2,idval4,idval5,idval7", 
     "type": [{ 
      "lists": [{ 
       "id": "1234", 
       "value": "One", 
       "ddid": "dd1", 
       "name": "first value" 
      }, 
      { 
       "id": "1235", 
       "value": "Two", 
       "ddid": "dd2", 
       "name": "second value" 
      }, 
      { 
       "id": "1236", 
       "value": "Three", 
       "ddid": "dd3", 
       "name": "third value" 
      }] 
     }] 
    }] 
} 

から期待していたオブジェクトの集合である、次のように私の現在のオブジェクトがあるどのような方法にはありますアンダースコアまたはJavaScriptを使用してこれを達成します。

ご協力いただきありがとうございます。

+2

あなたは第二のデータセットについて一意であるかを説明すべきです。今、私はあなたが2番目のデータセットで望むものを理解することをほとんど推測する必要があります。 – KevBot

+1

また、あなた自身でこれを試みたことがありますか?それが立てば、コミュニティメンバーがあなたのために仕事をするように求めるだけです。 – George

答えて

0

Lodashを使用すると、_.uniqWithを使用して、一意性を見つけるためのカスタムコンパレータを使用できます。コンパレータの2番目のパラメータを変更すると、idを組み合わせることができます。

var obj = {"payload":[{"id":"idval1","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"}]}]},{"id":"idval2","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"},{"id":"1236","value":"Three","ddid":"dd3","name":"third value"}]}]},{"id":"idval3","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"}]}]},{"id":"idval4","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"},{"id":"1236","value":"Three","ddid":"dd3","name":"third value"}]}]},{"id":"idval5","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"},{"id":"1236","value":"Three","ddid":"dd3","name":"third value"}]}]},{"id":"idval6","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"}]}]},{"id":"idval7","type":[{"lists":[{"id":"1234","value":"One","ddid":"dd1","name":"first value"},{"id":"1235","value":"Two","ddid":"dd2","name":"second value"},{"id":"1236","value":"Three","ddid":"dd3","name":"third value"}]}]}]}; 
 

 
obj.payload = _.uniqWith(obj.payload, function(val, accVal) { 
 
    if (_.isEqual(val.type, accVal.type)) { 
 
    accVal.id += "," + val.id; 
 
    return true; 
 
    } 
 
    return false; 
 
}); 
 

 
console.log(obj);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>

+0

こんにちはご協力ありがとうございます。 ** "ddtype"と呼ばれるタイプの他のプロパティを持っているので、** "リスト"をチェックする方法はありますか: "cs" ** "type":[{"" ddtype ":" cs " "リスト":[{"" id ":" 1234 "、"値 ":" 1 "、" ddid ":" dd1 "、"名前 ":"最初の値 "}]}] 'そのプロパティは異なる値を持つので、型では使用できません。それについて助言してください。 – Karthikeyan

+0

あなたは質問の入力データを編集してそれを表示できますか?私は上手く理解できていない気がします。それは簡単ですが、 '_.isEqual'で比較するものを変更してください。 – 4castle

+0

あなたのアップデートをありがとう。私は修正を得ました。 :) – Karthikeyan

関連する問題