过滤器对象数组



这是代码:

var displayedYearDataCo2 = getYearFromObjectArray(dumpObjectArray);
var dumpObjectArray = [{
2000: "3861703.86265837",
2001: "3948395.50088809",
2002: "4079614.75274644",
2003: "4243914.23578233",
2004: "4473182.3714518",
2005: "4666976.64129297",
2006: "4912930.11306349",
2007: "5230542.3962404",
2008: "5447541.9024238",
2009: "5614275.08094141",
2010: "5873859.25045115"},
{2000: "6445883.82450361",
2001: "6500776.94950847",
2002: "6510827.66224668",
2003: "6702943.57911293",
2004: "6732003.46639188",
2005: "6712282.82564533",
2006: "6846499.23063543",
2007: "6837383.17387017",
2008: "6810185.26824634",
2009: "6283177.01076618",
2010: "6544487.27529572"}];
function getYearFromObjectArray(value){
var objArrOnlySelectedYear = dumpObjectArray.filter(d => d.key === value);
return objArrOnlySelectedYear;
};

没有过滤并返回有问题值的对象,而是得到以下错误通知:

Uncaught TypeError: Cannot read properties of undefined (reading 'filter')在getYearFromObjectArray

更新:
非常感谢大家帮助我更好地理解,从而更好地制定我的问题。函数getYearFromObjectArray()应该返回dumpObjectArray的键的所有对应值。例如getYearFromObjectArray(2007)或者getYearFromObjectArray("2007")应该返回["5230542.3962404","6837383.17387017"]我需要这个来构建D3散点图,其中的数据来自CSV文件。

我认为这就是您要寻找的object,其value等于value参数。

var dumpObjectArray = [{
2000: "3861703.86265837",
2001: "3948395.50088809",
2002: "4079614.75274644",
2003: "4243914.23578233",
2004: "4473182.3714518",
2005: "4666976.64129297",
2006: "4912930.11306349",
2007: "5230542.3962404",
2008: "5447541.9024238",
2009: "5614275.08094141",
2010: "5873859.25045115"},
{2000: "6445883.82450361",
2001: "6500776.94950847",
2002: "6510827.66224668",
2003: "6702943.57911293",
2004: "6732003.46639188",
2005: "6712282.82564533",
2006: "6846499.23063543",
2007: "6837383.17387017",
2008: "6810185.26824634",
2009: "6283177.01076618",
2010: "6544487.27529572"}];
function getYearFromObjectArray(value){
return dumpObjectArray.filter(d => Object.values(d).find(i => i === value));
};
var displayedYearDataCo2 = getYearFromObjectArray("6544487.27529572");
console.log(displayedYearDataCo2)