我目前正在尝试创建一个可动态更改映射中数组值的函数。此函数旨在在每个完整循环中在数组中创建一个新元素,以表示要计数的新实例。
该功能用于计算每天有多少游客到一个国家。这是通过地图完成的,键是国家/地区,值是访客列表。每个元素都是特定日期的访客人数。
地图位置:
var countries = new Map();
('England', [0]);
('France', [0]);
('Spain', [0]);
('Poland', [0]);
('Germany', [0]);
('Russia', [0]);
对于代码:
for(var day = 0; day < daysBack; day++){
var dateToFind = (currentDate.date() + " / " +
currentDate.month() + " / " +
currentDate.year());
var detectionsOnDate = getActivity(dateToFind );
// Returns an array of locations visited, each visit is a new element
// eg. ["France", "France", "England", "France"]
for(var detectionLocation of detectionsOnDate){
for(var[location, visits] of countries ){
if(location == detectionLocation){
countries.set(location, visits[day]++);
}
}
}
currentDate.subtract(1, 'days');
}
我正在寻找的结果是一张类似于以下内容的地图:
{
('England', [242,235,853,122,512]);
('France', [241,621,173,173,512]);
('Spain', [62,235,213,465,126]);
('Poland', [734,163,856,354,142]);
('Germany', [234,235,643,237,512]);
('Russia', [174,200,136,107,164]);
}
按照我的逻辑思想,每次执行“ day”的新循环时,都应该在值中创建一个新元素。在一天的每个循环中,应更新地图中的相同元素。
我是JS的新手,所以很抱歉,如果这是一个简单的解决方法,但仍能找到解决方法。任何帮助都适用。谢谢。
答案 0 :(得分:2)
push
返回数组的长度。因此,将为每个键设置一个数字。相反,您可以将concat
的新数字value
放入set
数组,并将其map.set(key, value.concat(value[i]+1))
放入当前键。
map.set(key, value.concat(0))
和
const data = '<ABC-HEADER>...'; //
const otherNumber = data.match(/OTHER NUMBER: +(\S.*)/);
console.log(otherNumber[1]); // 068-16975
const filmNumber = data.match(/FILM NUMBER: +(\S.*)/);
console.log(filmNumber[1]); // 13362274