Untitled

Run Settings
LanguageJavaScript
Language Version
Run Command
const defaultStep = 10; const initialData = {"87.0":5,"94.0":4,"80.0":3,"64.0":3,"17.0":3,"59.0":3,"52.0":3,"40.0":3,"48.0":3,"100.0":3,"1.0":2,"23.0":2,"24.0":2,"25.0":2,"3.0":2,"31.0":2,"36.0":2,"37.0":2,"38.0":2,"39.0":2,"46.0":2,"55.0":2,"61.0":2,"65.0":2,"70.0":2,"73.0":2,"85.0":2,"88.0":2,"89.0":2,"91.0":2,"95.0":2,"96.0":2,"99.0":2,"2.0":1,"53.0":1,"93.0":1,"58.0":1,"18.0":1,"6.0":1,"60.0":1,"14.0":1,"62.0":1,"63.0":1,"16.0":1,"12.0":1,"22.0":1,"66.0":1,"7.0":1,"97.0":1,"28.0":1,"71.0":1,"72.0":1,"33.0":1,"34.0":1,"35.0":1,"98.0":1,"76.0":1,"78.0":1,"8.0":1,"4.0":1,"21.0":1,"43.0":1,"45.0":1,"15.0":1,"20.0":1,"49.0":1,"51.0":1}; // const newData = {'5': 2, '66': 5, '5': 1, '16': 0, '67': 1}; const newData = { '0': 1, '5': 3, '10': 1, '15': 0, '20': 1, '25': 0, '30': 0, '35': 0, '40': 3, '45': 0, '50': 0, '55': 0, '60': 0, '65': 0, '70': 1, '75': 0 }; const getValueGraphData = (data = {}) => { return Object.entries(data).map(([key, value]) => ({[key]: value})); }; const getIntervalGraphData = (data, step) => { // const steps = Object.keys(data).filter(item => +item % step === 0).map(item => +item).sort((a, b) => a - b); // console.log(Object.keys(data).sort((a, b) => a - b)) const calculatedData = Object.keys(data).sort((a, b) => a - b).reduce((acc, el) => { let value = 0; if (+el) { value = (el % step) ? el / step : (el - 1) / step; } const min = Math.floor(value); const max = min + 1; if (!acc[min]) { // console.log() acc[min] = { min: !min ? min * step : min * step + 1, max: max * step, values: [el], total: data[el] ? 1 : 0 }; } else { acc[min] = { ...acc[min], total: acc[min].total + (data[el] ? 1 : 0), values: [...acc[min].values, el] }; } return acc; }, {}); return Object.entries(calculatedData).map(([key, {min, max, total, values}]) => ({key, min, max, total, values})); }; const data = getIntervalGraphData(newData, 5); // const values = Object.entries(data).map(([_, value]) => value.total / defaultStep); // const values = Object.entries(data).map(([key, {min, max, total}]) => ({[key]: {min, max, total}})); const maxValue = data.reduce((acc, item) => { // const key = Object.keys(item)[0]; const average = item.value / defaultStep; if (average > acc) { return average; } return acc; }, 0); console.log('data: ', data); // console.log('values: ', values); console.log('maxValue :', maxValue); const roundValue = (value, digit = 1) => { const stringifiedValue = String(value); const a = stringifiedValue.split('.'); const roundedPard = digit >= a[1].length ? a[1] : a[1].slice(0, digit); const resultValue = `${a[0]}.${roundedPard}`; return +resultValue; }; // console.log(roundValue(1.490000000000, 2)) // console.log(getValueGraphData(newData, defaultStep));
function fib(n) { if (n <= 2) { return n-1; } return [ ...fib(n-1) + ...fib(n-2) ] } // 0 1 1 2 3 5 8 13
Editor Settings
Theme
Key bindings
Full width
Lines