比较数组中元素的总和,以确定哪个元素最高

时间:2015-09-22 20:13:25

标签: javascript arrays sum compare elements

我正在尝试在Javascript中创建一个函数,它将获取数字数组中的每个元素(在本例中为电话号码)并确定哪个元素具有最高总和。我已经达到了我感觉很失败的程度,但我认为我非常接近。谁能给一些指导?这就是我到目前为止所做的:

function highest(inputArray) {
  var sum = 0;
  var currentHighest = 0;
  var largest = 0;

我设置了我要使用的变量,然后创建了一个for循环来迭代数组中的每个元素。

  for (a = 0; a < inputArray.length; a++)
    var tempArray = inputArray[a].replace(/\D/g,'');

我创建一个占位符字符串来删除元素中的任何非整数,然后创建一个函数来对元素的所有数字求和。

    function sumDigits(str) {   
        for (i = 0; i < str.length; i++) {
                sum += parseInt(str.charAt(i));
        return sum;
        }
    }

然后创建一个if语句,测试当前元素的总和是否高于或等于最高sum元素。

    if (sumDigits(tempArray) >= currentHighest) {
          currentHighest = sum;
          largest = inputArray[a];
          return largest;
        }
        else {
            return largest;
        }
    }

var newArray = ['123-456-7777', '963-481-7945', '111-222-3333'];
console.log(highest(newArray));

以下是整个代码块:

function highest(inputArray) {
  var sum = 0;
  var currentHighest = 0;
  var largest = 0;
  for (a = 0; a < inputArray.length; a++)
    var tempArray = inputArray[a].replace(/\D/g,'');
    function sumDigits(str) {   
        for (i = 0; i < str.length; i++) {
                sum += parseInt(str.charAt(i));
        return sum;
        }
    }
    if (sumDigits(tempArray) >= currentHighest) {
          currentHighest = sum;
          largest = inputArray[a];
          return largest;
        }
        else {
            return largest;
        }
    }
}
var newArray = ['123-456-7777', '963-481-7945', '111-222-3333'];
console.log(highest(newArray));

当我运行代码时,如果有帮助,我得到“未定义”。提前感谢您的帮助。

0 个答案:

没有答案