2

我收到以下数据结构:

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

从这些数据中,我需要能够创建一个对象模型,该模型将允许我确定哪些颜色在给定尺寸中可用,而且反过来,哪些尺寸适用于给定颜色。

我知道我可以创建两个数据集和两个函数来进行查找,但是有没有更优雅的方法来使用 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 回答