算法思考:求数组中相反数的量

判断一个只存在整型数的数组中有多少对相反数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>求数组中相反数的量</title>
    <script>
        var arr = [8,9,4,3,-2,5,-8,7,-4];

        function countOpposite(arr){
            // 相反数对数计数器
            var count = 0;
            var newArr = [];
            arr.forEach(function(item,index,arr){
                if(item < 0){
                    // 存入负数的绝对值(不考虑0,以负数为根据判断相反数的量)
                    newArr.push(Math.abs(item));
                }
            });
            console.log(newArr);  // Array(3) [ 2, 8, 4 ]
            arr.forEach(function(item,index,arr){
                // 当原数组中存在与其中负数绝对值相同的项时
                if(newArr.includes(item)){
                    console.log(item);  // 8  4
                    // 计数器自增
                    count++;
                }
            });
            // 返回计数结果
            return count;
        }

        var result = countOpposite(arr);
        console.log(result);  // 2
    </script>
</head>
<body>
    
</body>
</html>
posted @ 2019-11-04 15:22  我的祈愿  阅读(558)  评论(0)    收藏  举报