data-joint
Version:
Perform data joins with any type of JS objects
36 lines (33 loc) • 958 B
HTML
<head>
<script src="//cdn.jsdelivr.net/npm/data-joint"></script>
<!--<script src="../dist/data-joint.js"></script>-->
</head>
<body>
<script>
const myView = new Set();
digest([{ id: 0, val: 2 }, { id: 1, val: 4 }, { id: 2, val: 7 }]);
digest([{ id: 1, val: 4 }, { id: 2, val: 3 }, { id: 3, val: 9 }]);
console.log('final data', [...myView]);
function digest(data) {
dataJoint(data, [...myView],
obj => myView.add(obj), // append obj
obj => myView.delete(obj), // remove obj
{
createObj: (d) => {
console.log('createObj', d);
return {};
},
updateObj: (obj, d) => {
obj.double = d.val * 2;
console.log('updateObj', obj, d);
},
exitObj: obj => {
obj.double = 0;
console.log('exitObj', obj);
},
idAccessor: d => d.id
}
);
}
</script>
</body>