Вы можете найти объект, который имеет maxSepalLength
в массиве leaves
и добавить его к возвращенному объекту:
return { maxSepalLength , ...leaves.find(e => e.sepalLength === maxSepalLength) }
РЕДАКТИРОВАТЬ:
[ 1113] Вы можете уменьшить количество итераций, используяreduce
вместо d3.max
:
maxdata = d3.nest()
.key(function (d) { return d.species; })
.rollup(function (leaves) {
return leaves.reduce((max, curr) => {
max['maxSepalLength'] = max['maxSepalLength'] || 0;
if(max['maxSepalLength'] < curr.sepalLength)
max = {...curr, maxSepalLength : curr.sepalLength};
return max;
}, {});
})
.entries(irisdata)
var irisdata = d3.csvParse(d3.select("pre#data").text());
console.log({ irisdata })
irisdata.forEach(function (d) {
d.sepalLength = +d.sepalLength;
});
maxdata = d3.nest()
.key(function (d) { return d.species; })
.rollup(function (leaves) {
var maxSepalLength = d3.max(leaves, function (x) { return x.sepalLength })
return { maxSepalLength , ...leaves.find(e => e.sepalLength === maxSepalLength) }
})
.entries(irisdata)
console.log({maxdata})
pre {
display:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<pre id="data">
sepalLength,sepalWidth,petalLength,petalWidth,species
5.1,3.5,1.4,0.2,setosa
4.9,3,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa
5,3.6,1.4,0.2,setosa
5.4,3.9,1.7,0.4,setosa
4.6,3.4,1.4,0.3,setosa
5,3.4,1.5,0.2,setosa
5.3,3.7,1.5,0.2,setosa
5,3.3,1.4,0.2,setosa
6.8,2.8,4.8,1.4,versicolor
6.7,3,5,1.7,versicolor
6,2.9,4.5,1.5,versicolor
5.7,2.6,3.5,1,versicolor
5.5,2.4,3.8,1.1,versicolor
5.5,2.4,3.7,1,versicolor
5.8,2.7,3.9,1.2,versicolor
6,2.7,5.1,1.6,versicolor
5.4,3,4.5,1.5,versicolor
6,3.4,4.5,1.6,versicolor
6.7,3.1,4.7,1.5,versicolor
6.3,2.3,4.4,1.3,versicolor
5.6,3,4.1,1.3,versicolor
5.5,2.5,4,1.3,versicolor
5.5,2.6,4.4,1.2,versicolor
6.1,3,4.6,1.4,versicolor
5.8,2.6,4,1.2,versicolor
5,2.3,3.3,1,versicolor
5.6,2.7,4.2,1.3,versicolor
5.7,3,4.2,1.2,versicolor
5.7,2.9,4.2,1.3,versicolor
6.2,2.9,4.3,1.3,versicolor
5.1,2.5,3,1.1,versicolor
5.7,2.8,4.1,1.3,versicolor
6.3,3.3,6,2.5,virginica
5.8,2.7,5.1,1.9,virginica
7.1,3,5.9,2.1,virginica
5.8,2.8,5.1,2.4,virginica
6.4,3.2,5.3,2.3,virginica
6.5,3,5.5,1.8,virginica
7.7,3.8,6.7,2.2,virginica
7.7,2.6,6.9,2.3,virginica
6,2.2,5,1.5,virginica
6.9,3.2,5.7,2.3,virginica
5.6,2.8,4.9,2,virginica
7.7,2.8,6.7,2,virginica
6.3,2.7,4.9,1.8,virginica
6.7,3.3,5.7,2.1,virginica
7.2,3.2,6,1.8,virginica
6.2,2.8,4.8,1.8,virginica
6.1,3,4.9,1.8,virginica
6.4,2.8,5.6,2.1,virginica
7.2,3,5.8,1.6,virginica
7.4,2.8,6.1,1.9,virginica
7.9,3.8,6.4,2,virginica
6.4,2.8,5.6,2.2,virginica
6.3,2.8,5.1,1.5,virginica
6.1,2.6,5.6,1.4,virginica
7.7,3,6.1,2.3,virginica
6.3,3.4,5.6,2.4,virginica
6.4,3.1,5.5,1.8,virginica
</pre>
Текстовые области не должны переноситься по умолчанию, но можно установить обертку = "мягкий" для явного отключения обертки:
<textarea name="nowrap" cols="30" rows="3" wrap="soft"></textarea>
<забастовка> РЕДАКТИРОВАНИЕ: атрибут "обертки" официально не поддерживается. Я получил его от немецкая страница SELFHTML (английский источник здесь ), который говорит, что IE 4.0 и Netscape 2.0 поддерживают его. Я также протестировал его в FF 3.0.7, где это работает, как предполагается. Вещи изменились здесь, SELFHTML является теперь Wiki, и английская исходная ссылка является битой.
EDIT2: Если Вы хотите быть уверенными каждый поддержка браузера это, можно использовать CSS для изменения поведения обертки:
Используя Каскадные таблицы стилей (CSS), можно достигнуть того же эффекта с
white-space: nowrap; overflow: auto;
. Таким образом атрибут обертки может рассматриваться как устаревший.
От здесь (кажется, превосходная страница с информацией о текстовой области).
EDIT3: я не уверен, когда это изменилось (согласно комментариям, должно быть, был приблизительно в 2014), но wrap
теперь официальный атрибут HTML5, см. w3schools. Измененный ответ для соответствия этому.
Следующее основанное на CSS решение работает на меня:
<html>
<head>
<style type='text/css'>
textarea {
white-space: nowrap;
overflow: scroll;
overflow-y: hidden;
overflow-x: scroll;
overflow: -moz-scrollbars-horizontal;
}
</style>
</head>
<body>
<form>
<textarea>This is a long line of text for testing purposes...</textarea>
</form>
</body>
</html>