我正在尝试从现有阵列创建一个新阵列。条件是,如果元素重复,则将这些元素相加。请参阅以下示例以获取详细信息,因为我可能无法清楚解释:
输入:
var arrayA = ["2", "1", "4", "2", "5", "1", "3", "2"];
输出:
var arrayB = ["6", "2", "4", "5", "3"];
此处arrayB [0] = 2s(2 + 2 + 2)的总和,arrayB [1] = 1s(1 + 1)的总和
我做了很多尝试,但无法弄清楚该如何实现。
请帮忙!
最佳答案
你可以这样
arrayA = ["2", "1", "4", "2", "5", "1", "3", "2"];
//make a set
var set = new Set(arrayA);
var arrayB = [];
set.forEach(function(a) {
//for each set find in the original arrayA
var len = arrayA.filter(function(f) {
return f == a;
});
//push in arrayB set element * number of it occurance in original array
arrayB.push((+a) * (len.length));
})
console.log(arrayB)