有没有办法将 Map.get() 与数组数组一起使用(特别是在 d3.js 中)?
这是我所拥有的: (1) Map – 包含超过 100 个键值对的数据 (2) 数组数组 – 列出我想要从 Map 中提取数据以填充表的键(仅 100 多个值的子集)
这是我需要创建的内容: (1) 一个新的数组数组 – 这个新数组应该依次取出第一个数组中的每一项,在 Map 中查找键并返回值。
我可以让 Map.get() 在单个数组上正常工作,但前提是我指定嵌套数组的索引,如下所示:
var myMap;
var dataArray = [key_1, key_2, key_3, key_4, key_5, key_6]
var newArray = dataArray[0].map(function(d) {
return myMap.get(d);
});
但是当我的原始数组是数组的数组时,我不知道该怎么做:
var myMap;
var dataArray = [
[key_1, key_2, key_3],
[key_4, key_5, key_6],
[key_7, key_8, key_9]
]
var newArray = ???
有什么建议吗?
最佳答案
您有嵌套数组,因此请使用嵌套map
:
var newArray = dataArray.map(function(array) {
return array.map(function(d) {
return myMap.get(d);
});
});
如果在循环中创建函数让您感到困扰,您可以将重新创建的函数拆分出来:
var newArray = dataArray.map(function(array) {
return array.map(mapOne);
});
function mapOne(array) {
return array.map(function(d) {
return myMap.get(d);
});
}
关于javascript - 如何将 Map.get() 与数组数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038405/