我正在尝试在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));
当我运行代码时,如果有帮助,我得到“未定义”。提前感谢您的帮助。