我收到以下数据结构:
{ 8: ['red', 'green', 'blue'] }
{ 10: ['red', 'green'] }
{ 12: ['green', 'blue'] }
根据这些数据,我需要能够创建一个对象模型,使我能够确定给定尺寸有哪些颜色可用,反之亦然,给定颜色有哪些尺寸可用。
我知道我可以创建两个数据集和两个函数来进行查找,但是有没有更优雅的方法来使用 UnderscoreJS 之类的东西来做到这一点?
最佳答案
假设您使用下划线或 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"]
关于Javascript 数据模型,交叉引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14168408/