|
787 | 787 | function bind(group, groupData) { |
788 | 788 | var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; |
789 | 789 | if (key) { |
790 | | - var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Set(), keyValues = [], keyValue; |
| 790 | + var nodeByKeyValue = new d3_Map(), dataKeys = new d3_Set(), keyValues = [], keyValue; |
791 | 791 | for (i = -1; ++i < n; ) { |
792 | | - keyValue = key.call(node = group[i], node.__data__, i); |
793 | | - if (nodeByKeyValue.has(keyValue)) { |
| 792 | + if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) { |
794 | 793 | exitNodes[i] = node; |
795 | 794 | } else { |
796 | 795 | nodeByKeyValue.set(keyValue, node); |
797 | 796 | } |
798 | 797 | keyValues.push(keyValue); |
799 | 798 | } |
800 | 799 | for (i = -1; ++i < m; ) { |
801 | | - keyValue = key.call(groupData, nodeData = groupData[i], i); |
802 | | - if (node = nodeByKeyValue.get(keyValue)) { |
| 800 | + if (node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i))) { |
803 | 801 | updateNodes[i] = node; |
804 | 802 | node.__data__ = nodeData; |
805 | | - } else if (!dataByKeyValue.has(keyValue)) { |
| 803 | + } else if (!dataKeys.has(keyValue)) { |
806 | 804 | enterNodes[i] = d3_selection_dataNode(nodeData); |
807 | 805 | } |
808 | | - dataByKeyValue.add(keyValue); |
| 806 | + dataKeys.add(keyValue); |
809 | 807 | nodeByKeyValue.remove(keyValue); |
810 | 808 | } |
811 | 809 | for (i = -1; ++i < n; ) { |
|
0 commit comments