如何在 d3.js 中获取 json 文件中具有特定值的总行数
How to get the total number of rows with particular value in json file in d3.js
我有一个 JSON 文件,我使用 d3.js 将其用于可视化。我想获取特定代码的总行数。我正在使用以下方法:
data.keys(d.code).length
但是它不起作用。我该如何解决这个问题?
我找到了一个想法,但它没有显示正确的值。有什么问题吗?
Object.keys(d.code).length
我有一个 JSON 文件,其中包含以下样本数据
[
{"name":"a","code":20},
{"name":"b","code":20},
{"name":"c","code":20},
{"name":"d","code":21}
]
我的目标是获取具有相同代码的数据计数。例如,对于代码 20,我应该得到 3 作为输出。
var count = 0;
var length = data.length;
for (var x = 0; x < length; x++)
{
if (data[x].code == 20)
count++;
}
console.log('Final count: ' + count);
大概是这样。
如果你想要一个函数,你可以使用这个:
var getCount = function(data, val)
{
var count = 0;
var length = data.length;
for (var x = 0; x < length; x++)
{
if (data[x].code == val)
count++;
}
return count;
}
然后这样称呼它:
var count = getCount(data, 20); // should return 3
您不需要 D3.js。简单 JavaScript 应该可以做到。类似于:
total = data.reduce(function(count, entry) {
return count + (entry.code === 20 ? 1 : 0);
}, 0);
显然,您可以将其转换为函数来处理 20 以外的任意值。
您不妨使用 d3.nest()
根据 code
对您的数据进行分组,并使其 return 每组的条目数:
var json = [
{"name":"a","code":20},
{"name":"b","code":20},
{"name":"c","code":20},
{"name":"d","code":21}
];
var nest = d3.nest()
.key(function(d) { return d.code; })
.rollup(function(values) { return values.length; })
.entries(json);
我有一个 JSON 文件,我使用 d3.js 将其用于可视化。我想获取特定代码的总行数。我正在使用以下方法:
data.keys(d.code).length
但是它不起作用。我该如何解决这个问题? 我找到了一个想法,但它没有显示正确的值。有什么问题吗?
Object.keys(d.code).length
我有一个 JSON 文件,其中包含以下样本数据
[
{"name":"a","code":20},
{"name":"b","code":20},
{"name":"c","code":20},
{"name":"d","code":21}
]
我的目标是获取具有相同代码的数据计数。例如,对于代码 20,我应该得到 3 作为输出。
var count = 0;
var length = data.length;
for (var x = 0; x < length; x++)
{
if (data[x].code == 20)
count++;
}
console.log('Final count: ' + count);
大概是这样。
如果你想要一个函数,你可以使用这个:
var getCount = function(data, val)
{
var count = 0;
var length = data.length;
for (var x = 0; x < length; x++)
{
if (data[x].code == val)
count++;
}
return count;
}
然后这样称呼它:
var count = getCount(data, 20); // should return 3
您不需要 D3.js。简单 JavaScript 应该可以做到。类似于:
total = data.reduce(function(count, entry) {
return count + (entry.code === 20 ? 1 : 0);
}, 0);
显然,您可以将其转换为函数来处理 20 以外的任意值。
您不妨使用 d3.nest()
根据 code
对您的数据进行分组,并使其 return 每组的条目数:
var json = [
{"name":"a","code":20},
{"name":"b","code":20},
{"name":"c","code":20},
{"name":"d","code":21}
];
var nest = d3.nest()
.key(function(d) { return d.code; })
.rollup(function(values) { return values.length; })
.entries(json);