次の状況を考慮してください。
items = [
{
id: 1
attributes: [
{ key: a, value: 2 }
{ key: b, value: 3 }
],
requirements: null
}
{
id: 2
attributes: [
{ key: b, value: 2 }
],
requirements: a > 2
}
{
id: 3
attributes: [
{ key: a, value: 1 }
{ key: c, value: 1 }
],
requirements: a > 1 and b > 2
}
{
id: 4
attributes: [
{ key: a, value: 2 }
{ key: d, value: 7 }
],
requirements: b > 5 and h < 10
}
]
期待される結果は、さまざまなものを合計(合計)すると次のようになりattributes
ます。
result = [
{ key: a, value: 3 }
{ key: b, value: 5 }
{ key: c, value: 1 }
]
requirements
ご覧のとおり、リスト内のオブジェクト間には依存関係( )があります。特に、(シリーズの最後の1つ)を持つオブジェクトは、条件がチェックされないid: 4
ため、計算から破棄されます。b > 5 and h < 10
逆にid: 2
、最初に破棄された、のオブジェクトは、id: 3
(属性に1を追加することa
により、条件を真にするa > 2
)のオブジェクトの結果として計算に含まれます。
N個のオブジェクトを持つ必要な結果を取得するために必要なアルゴリズムは何ですか?
免責事項:提案された構造は単なる例です。結果を達成するためにあなたが信じる変更を提案することができます。私はJavaScript(CoffeeScript)プログラミング言語で作業していますが、他の言語でも問題ありません。