2

次のデータ構造を受け取っています。

{ 8: ['red', 'green', 'blue'] }
{ 10: ['red', 'green'] }
{ 12: ['green', 'blue'] }

このデータから、特定のサイズでどの色を使用できるかを判断できるようにするオブジェクト モデルを作成できる必要がありますが、逆に、特定の色でどのサイズを使用できるかを判断することもできます。

2 つのデータ セットとルックアップを行う 2 つの関数を作成できることはわかっていますが、UnderscoreJS のようなものでこれを行うよりエレガントな方法はありますか?

4

1 に答える 1

0

アンダースコアまたはlodashを使用していると仮定します*

var a = [
    { 8: ['red', 'green', 'blue'] },
    { 10: ['red', 'green'] },
    { 12: ['green', 'blue'] }
];
function getIndicesByColor(a,color){
    var list = _.assign.apply(this,a);
    return _.select(_.keys(list),function(v,k,l){return _.contains(list[v],color)})
}
getIndicesByColor(a,'red') // ["8", "10"]
getIndicesByColor(a,'green') // ["8", "10", "12"]    
getIndicesByColor(a,'blue') // ["8", "12"]
于 2013-01-10T20:54:06.570 に答える