Просто, чтобы добавить больше информации, кроме того, в принятом ответе:
Если вы хотите получить конкретное насекомое, и если вы знать, что это позиция в массиве (как вам кажется): это то, что вам нужно:
var someInsect = data_group[i].values[j].insect;
//outer object ----^ ^---- inner object
В этой области индекс i
относится к внешнему объекту со всеми насекомыми с заданной болью в уровне. Затем внутри него индекс j
относится к внутреннему объекту с определенным насекомым.
Например, проверьте следующее демо (я использую <pre>
для загрузки данных), где я получаю данные и гнездю их так, как вы это делали. В этой демонстрации, чтобы получить тарантул ястреб, я использую:
var someInsect = data_group[0].values[1].insect;
var data = d3.csvParse(d3.select("#data").text());
var data_group = d3.nest()
.key(d => d.painIndex)
.entries(data);
var someInsect = data_group[0].values[1].insect;
console.log(someInsect);
pre {
display: none;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
<pre id="data">insect,painIndex
fire ant,4
honey wasp,1
warrios wasp,3
paper wasp,1
velvet ant,2
tarantula hawk,4
bullet ant,4</pre>
Конечно, эта переменная будет меняться в зависимости от насекомого вы хотите.
Другая возможность - получить уровень боли любого насекомого, которого вы хотите по имени. В вашем вложенном массиве, что может быть сделано с:
var filtered = [].concat.apply([], data_group.map(function(d) {
return d.values
})).filter(function(d) {
return d.insect === myInsect
})[0].painIndex;
Где myInsect
имеет название насекомого вы будете использовать в filter
.
Проверить это другое демо, где мы получаем значение боли тарантула ястреба:
var data = d3.csvParse(d3.select("#data").text());
var data_group = d3.nest()
.key(d => d.painIndex)
.entries(data);
var myInsect = "tarantula hawk"
var filtered = [].concat.apply([], data_group.map(function(d) {
return d.values
})).filter(function(d) {
return d.insect === myInsect
})[0].painIndex;
console.log(filtered);
pre {
\t display: none;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
<pre id="data">insect,painIndex
fire ant,4
honey wasp,1
warrios wasp,3
paper wasp,1
velvet ant,2
tarantula hawk,4
bullet ant,4</pre>
Конечно, все это (получение ключевых значений, получить значение в зависимости от другое значение и т. д.) было бы проще, если бы вы использовали свой оригинал, а не вложенный.
Можно ли найти все экземпляры в каждом массиве? – st4rgut
@ st4rgut Смотрите мое редактирование. Я думаю, это то, что ты имеешь в виду. – Jack