Create an intersection between 2 or more Y.Model instances
by dfederighi
JavaScript
YUI().use('node', 'model', function(Y) {
var model1 = new Y.Model({'name':'dale','occupation':'engineer','age':40,'favorite-color':'red'}),
model2 = new Y.Model({'name':'seth','occupation':'engineer','age':40,'favorite-color':'blue'}),
model3 = new Y.Model({'name':'thom','occupation':'engineer','age':32,'favorite-color':'blue'}),
model4 = new Y.Model({'name':'scot','occupation':'engineer','age':36,'favorite-color':'blue'}),
keys = ['name','occupation','age','favorite-color'];
var modelList = [model1, model2, model3, model4],
intersect = {},
rejects = {};
Y.Array.each(modelList, function(model, index) {
if (!modelList[index + 1]) return;
var nextModel = modelList[index + 1];
Y.Object.each(model.getAttrs(keys), function(val, key) {
if (!rejects[key]) {
if (nextModel.get(key) === val) {
intersect[key] = val;
} else {
delete intersect[key];
rejects[key] = true;
}
}
});
});
console.log('intersect:', intersect);
});