这可能很简单但我现在很震惊。我有一个数组
items=["shelter","tent","shelter","injured","displaced","displaced"]
它的值与它的相应值
magnitude = [5,12,6,9,13,2]
现在,任务是添加item_name及其相应的总幅度和出现次数:
11人住所,
12人帐篷,
9人受伤,
15人流离失所
我尝试了一些循环和条件,但我现在累了。提前谢谢你的帮助。
答案 0 :(得分:0)
如果你想这样做,可以使用$ .each,如下所示:
var items=["shelter","tent","shelter","injured","displaced","displaced"]
var magnitudes = [5,12,6,9,13,2]
var map = new Map();
$.each(items,function(key,value) {
console.log(value);
var element = map.get(value);
if(element == undefined)
element = 0;
var element = element + magnitudes[key];
map.set(value,element);
})
console.log(map);
这里我们循环使用项目并放入地图,如果我们已经将值添加到旧的值中。 希望它有所帮助。
答案 1 :(得分:0)
您可以从创建这样的对象开始:
var map = {};
for (var i = 0, count = items.length; i < count; i++) {
map[items[i]] = (map[items[i]] || 0) + magnitude[i];
}
您可以像这样查看值:
for (var item in map) {
console.log(item + ': ' + map[item]);
}
或者只是单独访问它们,如下所示:
console.log('shelter for ' + map['shelter'] + ' people');
console.log('tent for ' + map['tent'] + ' people');
console.log(map['injured'] + ' people injured');
console.log(map['displaced'] + ' people displaced');
答案 2 :(得分:0)