javascript - 如何将 Map.get() 与数组数组一起使用

标签 javascript arrays d3.js multidimensional-array

有没有办法将 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/

相关文章:

javascript - jQuery Mobile 应用程序的起点

javascript - React 函数式组件是常规函数还是构造函数?

c++ - C++中的二维对象数组

javascript - D3js,时间轴标签的特定格式

javascript - 使用 d3 将按钮添加到 <g> 元素

javascript - 两个 D3.js 图与 AngularJS 在同一页面中

javascript - Typescript中异步函数的返回值

php - jQuery - 将所有表单输入值存储在隐藏输入中

java - 如何在java中创建直方图

C 预处理程序对定义的数组元素进行错误检查