gpt4 book ai didi

Javascript:字典数组,从一个有条件的字典中获取所有键值对

转载 作者:行者123 更新时间:2023-12-01 16:19:34 26 4
gpt4 key购买 nike

首先,这是我在这里的第一篇文章,我不是一个非常高级的程序员。如果我不遵守 Stackoferflow 的规则,请告诉我。

我正在尝试使用 D3 为我的链接 View 分配制作散点图(和数据图)。在我的 x 轴上,我将有几年,在 Y 轴上,我想要某个国家的预期生命周期。国家将是一个变量并传递给创建散点图的函数(通过单击数据图)。

我的数据集如下所示:

    [{"country":"Abkhazia","1995":null,"1996":null,"1997":null,"1998":null,"1999":null,"2000":null,"2001":null,"2002":null,"2003":null,"2004":null,"2005":null,"2006":null,"2007":null,"2008":null,"2009":null,"2010":null,"2011":null,"2012":null,"2013":null,"2014":null,"2015":null,"2016":null},
{"country":"Afghanistan","1995":49.4,"1996":49.7,"1997":49.5,"1998":48.6,"1999":50,"2000":50.1,"2001":50.4,"2002":51,"2003":51.4,"2004":51.8,"2005":52,"2006":52.1,"2007":52.4,"2008":52.8,"2009":53.3,"2010":53.6,"2011":54,"2012":54.4,"2013":54.8,"2014":54.9,"2015":53.8,"2016":52.72},
etc.

我的功能是这样开始的:
function makeScatter(lifeExpectancy, healthPercGDP, country){...

我想要一个属于传递给我的函数的国家(例如阿富汗)的所有键值对或所有值(我认为我可以使两者都工作)的数组或字典。

提前致谢!

最佳答案

给定您的数据结构,一种简单的方法就是过滤 makeScatter 中的数据数组。功能。

function makeScatter(country) {
var filteredData = data.filter(d => d.country === country);
}

这是一个演示,检查控制台:

var data = [{
"country": "Abkhazia",
"1995": null,
"1996": null,
"1997": null,
"1998": null,
"1999": null,
"2000": null
}, {
"country": "Afghanistan",
"1995": 49.4,
"1996": 49.7,
"1997": 49.5,
"1998": 48.6,
"1999": 50,
"2000": 50.1,
"2001": 50.4
}, {
"country": "Angola",
"1995": 59.4,
"1996": 59.7,
"1997": 39.5,
"1998": 58.6,
"1999": 60,
"2000": 60.1,
"2001": 60.4
}];

function makeScatter(country) {
var filteredData = data.filter(d => d.country === country);
console.log(filteredData);
}

makeScatter("Afghanistan")


但是,这里有一个潜在的问题:在 D3 中,“enter”选择的元素与传递给 data() 的数组一样多。功能。现在,这个 filteredData数组只有一个对象,这意味着您在输入选择中只有一个元素。

因此,我的建议是:过滤您的国家/地区后,将这个巨大的对象转换为一组对象(每个对象都有一个 year 和一个 expectancy 属性),这里命名为 countryData :
function makeScatter(country) {
var filteredData = data.filter(d => d.country === country);
countryData = [];
for (var prop in filteredData[0]) {
countryData.push({
year: +prop,
expect: filteredData[0][prop]
})
}
}

这是演示:

var data = [{
"country": "Abkhazia",
"1995": null,
"1996": null,
"1997": null,
"1998": null,
"1999": null,
"2000": null
}, {
"country": "Afghanistan",
"1995": 49.4,
"1996": 49.7,
"1997": 49.5,
"1998": 48.6,
"1999": 50,
"2000": 50.1,
"2001": 50.4
}, {
"country": "Angola",
"1995": 59.4,
"1996": 59.7,
"1997": 39.5,
"1998": 58.6,
"1999": 60,
"2000": 60.1,
"2001": 60.4
}];

function makeScatter(country) {
var filteredData = data.filter(d => d.country === country);
countryData = [];
for (var prop in filteredData[0]) {
countryData.push({
year: +prop,
expect: filteredData[0][prop]
})
}
console.log(countryData)
}

makeScatter("Afghanistan")

关于Javascript:字典数组,从一个有条件的字典中获取所有键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com