WordClouds word weight calculatror
by Arjan Haverkamp
HTML
<div id="out">
</div>
JavaScript
var list = [
{weight:200, word:'Lorem'},
{weight:180, word:'Ipsum'},
{weight:150, word:'Dito'},
{weight:140, word:'Samet'},
{weight:100, word:'Arjan'},
{weight:99, word:'Claudia'},
{weight:95, word:'Kees'},
{weight:80, word:'Anne'},
{weight:80, word:'Anne 2'},
{weight:80, word:'Anne 3'},
{weight:67, word:'Frank'},
{weight:60, word:'Boomer'},
{weight:55, word:'Karel'},
{weight:50, word:'Jamie'},
{weight:43, word:'Klaas'},
{weight:35, word:'Marit'},
{weight:20, word:'Joop'},
{weight:10, word:'Marie'}
];
/*
var list = [
{weight:100,word:'Arjan'},
{weight:75,word:'Annemarie'},
{weight:50,word:'Claudia'},
{weight:25,word:'Noa'}
];
*/
list.sort(function(a,b) {
if (a.weight == b.weight) {
var la = a.word.length, lb = b.word.length;
return la > lb ? -1 : la < lb ? 1 : 0;
}
return b.weight - a.weight;
});
var minWeight = list[list.length-1].weight;
var maxWeight = list[0].weight;
var rangeWeight = maxWeight - minWeight;
var stepSize = rangeWeight/100;
var maxDropPerc = 5; // Variable percentage
var maxDropVal = maxDropPerc * stepSize;
var newList = [list[0]];
for (var x = 1; x < list.length; x++) {
var item = Object.assign({}, list[x]); // Clone
item.weight = newList[x-1].weight - (Math.min(maxDropVal, list[x-1].weight - list[x].weight));
newList[x] = item;
}
list = newList;
console.log(list);
//alert('wait');
////////////////////////////////////////////////////////////
var minWeight = list[list.length-1].weight;
var maxWeight = list[0].weight;
var rangeWeight = maxWeight - minWeight;
var stepSize = rangeWeight/100;
for (var x = 0; x < list.length; x++) {
list[x].weight = (list[x].weight - minWeight) / stepSize;
}
console.log(list);
////////////////////////////////////////////////////////////
var $out = $('#out');
var maxFontSize = 63, factor = maxFontSize/100;
for (var x = 0; x < list.length; x++) {
var fontSize = 1 + (list[x].weight * factor);
list[x].fontSize = fontSize;
$out.append('<div style="font-size:' + fontSize +...