From b1033b2d5e1434070c9dd2464c7e2cc785ab6c02 Mon Sep 17 00:00:00 2001 From: spalger Date: Fri, 13 Nov 2015 17:16:00 -0600 Subject: [PATCH] [pointSeries/addToSiri] use Map() so that numeric keys are not sorted the getSeries and addToSiri functions in the pointSeries module currently use a plain object to map values to series ids. This generally keeps things in the right order but causes numeric keys to be sorted at the top of the key list. This is one of the reasons Map exists. --- .../point_series/__tests__/_add_to_siri.js | 38 +++++++++---------- .../agg_response/point_series/_add_to_siri.js | 8 ++-- .../agg_response/point_series/_get_series.js | 4 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/ui/public/agg_response/point_series/__tests__/_add_to_siri.js b/src/ui/public/agg_response/point_series/__tests__/_add_to_siri.js index 61ee27681150..0e7042d8a2e3 100644 --- a/src/ui/public/agg_response/point_series/__tests__/_add_to_siri.js +++ b/src/ui/public/agg_response/point_series/__tests__/_add_to_siri.js @@ -9,20 +9,20 @@ describe('addToSiri', function () { })); it('creates a new series the first time it sees an id', function () { - var series = {}; + var series = new Map(); var point = {}; var id = 'id'; addToSiri(series, point, id); - expect(series).to.have.own.property(id); - expect(series[id]).to.be.an('object'); - expect(series[id].label).to.be(id); - expect(series[id].values).to.have.length(1); - expect(series[id].values[0]).to.be(point); + expect(series.has(id)).to.be(true); + expect(series.get(id)).to.be.an('object'); + expect(series.get(id).label).to.be(id); + expect(series.get(id).values).to.have.length(1); + expect(series.get(id).values[0]).to.be(point); }); it('adds points to existing series if id has been seen', function () { - var series = {}; + var series = new Map(); var id = 'id'; var point = {}; @@ -31,25 +31,25 @@ describe('addToSiri', function () { var point2 = {}; addToSiri(series, point2, id); - expect(series).to.have.own.property(id); - expect(series[id]).to.be.an('object'); - expect(series[id].label).to.be(id); - expect(series[id].values).to.have.length(2); - expect(series[id].values[0]).to.be(point); - expect(series[id].values[1]).to.be(point2); + expect(series.has(id)).to.be(true); + expect(series.get(id)).to.be.an('object'); + expect(series.get(id).label).to.be(id); + expect(series.get(id).values).to.have.length(2); + expect(series.get(id).values[0]).to.be(point); + expect(series.get(id).values[1]).to.be(point2); }); it('allows overriding the series label', function () { - var series = {}; + var series = new Map(); var id = 'id'; var label = 'label'; var point = {}; addToSiri(series, point, id, label); - expect(series).to.have.own.property(id); - expect(series[id]).to.be.an('object'); - expect(series[id].label).to.be(label); - expect(series[id].values).to.have.length(1); - expect(series[id].values[0]).to.be(point); + expect(series.has(id)).to.be(true); + expect(series.get(id)).to.be.an('object'); + expect(series.get(id).label).to.be(label); + expect(series.get(id).values).to.have.length(1); + expect(series.get(id).values[0]).to.be(point); }); }); diff --git a/src/ui/public/agg_response/point_series/_add_to_siri.js b/src/ui/public/agg_response/point_series/_add_to_siri.js index 26a6c1ea3582..df50b11f6c7e 100644 --- a/src/ui/public/agg_response/point_series/_add_to_siri.js +++ b/src/ui/public/agg_response/point_series/_add_to_siri.js @@ -3,15 +3,15 @@ define(function (require) { return function addToSiri(series, point, id, label) { id = id == null ? '' : id + ''; - if (series[id]) { - series[id].values.push(point); + if (series.has(id)) { + series.get(id).values.push(point); return; } - series[id] = { + series.set(id, { label: label == null ? id : label, values: [point] - }; + }); }; }; }); diff --git a/src/ui/public/agg_response/point_series/_get_series.js b/src/ui/public/agg_response/point_series/_get_series.js index a8089ba7a6d6..7e86ecf67ba2 100644 --- a/src/ui/public/agg_response/point_series/_get_series.js +++ b/src/ui/public/agg_response/point_series/_get_series.js @@ -29,8 +29,8 @@ define(function (require) { addToSiri(series, point, seriesId, seriesLabel); }); - }, {}) - .values() + }, new Map()) + .thru(series => [...series.values()]) .value(); if (multiY) {