gpt4 book ai didi

javascript - 仅对唯一数组求和

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:43 24 4
gpt4 key购买 nike

首先,如果这是一个简单的问题,我很抱歉,但我很难在我的程序中选择唯一的数组(顺便说一句,我只是在学习 javasript)。我知道我可以使用过滤器或 map 等内置功能轻松做到这一点,但我被禁止这样做。这是我到目前为止所得到的:

function countUnique (numbers) { 
var sorted_numbers = numbers.sort(function(a,b){return a-b})
var result = []
for (var i = 0 ; i<numbers.length; i++){
if (numbers[i]!==numbers[i+1]){
result.push(numbers[i])
console.log(result)
}
}
var sum = 0
for (var j = 0; j<result.length; j++) {
sum = sum + result[j]
}
return sum
}

console.log(countUnique([ 5, 5, 6, 6, 3, 1, 2, 7, 7])) // 6
console.log(countUnique([ 3, 6, 3, 6, 1, 1, 2, 1 ])) // 2
console.log(countUnique([ 3, 3, 3, 3, 4, 5, 8, 10, 11 ])) // 38

例子:输入:[ 5, 5, 6, 6, 3, 1, 2, 7, 7 ]散文:3 + 1 + 2结果:6

最佳答案

使用 indexOf 和 lastIndexOf。如果 indexOf 的结果等于 lastIndexOf 的结果,则表示该元素在数组中是唯一的。

let arr = [ 3, 3, 3, 3, 4, 5, 8, 10, 11 ];
let sum = 0;
arr.forEach(a => {
sum += (arr.indexOf(a) === arr.lastIndexOf(a)) ? a : 0;
});
console.log(sum);

关于javascript - 仅对唯一数组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51128421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com