javascript - 在 Javascript 中将数组设置为 Map 值

标签 javascript jquery arrays object hashmap

我需要在 javascript 中有一个等效的 HashMap 。看来 map 是正确的选择。但是,我需要将 Map 中每对的值设置为数组。例如, 我的 map : key1: 参数1 值1:[1,2,3]

键2:参数2 值2:[3,4,5]

我查看了下一页,但不知道该怎么做。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/has

这样做的目的是我试图在 HTML 页面上提取故事中的数据。基本上,我想使用 HashMap 来组织表中的所有数据。所以每个列名将是 HashMap 的键,列中对应的值将是该键对应的值。

以下是我正在尝试使用的代码:

function (data) {                    
                $.each(data, function (key, value) {
                    tempData += '<tr>';
                    tempData += '<td>' + value.name + '</td>';
                    tempData += '<td>' + value.value + '</td>';

                    //check whether the key already exists in the map
                    if (measurementDataMap.get(value.name) == undefined) {
                        //if the key doesn't exist, the value points to an empty array
                        measurementDataMap[value.name] = [];
                    }
                    measurementDataMap[value.name].push(value.value);
                });

我不知道如何为新对的值创建一个空数组。谢谢!

最佳答案

在您的代码中,您混合了属性访问语法和 Map 方法,请使用其中之一:

const measurementDataMap = {};
//...
if(measurementDataMap[value.name] == undefined) {
    measurementDataMap[value.name] = [];
}
measurementDataMap[value.name].push(value.value);

 // OR

const measurementDataMap = new Map;
//...
if(!measurementDataMap.has(value.name))
  measurementDataMap.set(value.name, []);


measurementDataMap.get(value.name).push(value.value);

关于javascript - 在 Javascript 中将数组设置为 Map 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464834/

相关文章:

javascript - 如何设置关联数组?

php - 将 PHP 对象转换为关联数组

javascript - 通过正则表达式 javascript 删除未使用的内容

javascript - 如何从复杂的对象数组中获取唯一的对象数组?

javascript - 如果出现任何 Ajax 错误,请提交表单

javascript - jQuery 循环动画

javascript - 如何使用 jquery 和 laravel 捕获并上传视频?

jquery - 使用jquery获取两个数组的比率

javascript - 如何检查在 Sinon 中是否使用正确的属性调用了类构造函数?

javascript - 使用 Ajax 和经典 ASP 查询数据库