Javascript 只能访问已修改数组的第一个元素
我的任务是比较数组中电话号码的值,并返回数字总和最大的元素。为了实现这一点,我决定替换电话号码中的“-”,使元素只包含数字,然后解析字符串以比较数字。然而,我被困在第一部分 当我返回数组时,只返回修改后的第一个元素。我如何重写它以便返回数组的所有元素Javascript 只能访问已修改数组的第一个元素,javascript,arrays,regex,Javascript,Arrays,Regex,我的任务是比较数组中电话号码的值,并返回数字总和最大的元素。为了实现这一点,我决定替换电话号码中的“-”,使元素只包含数字,然后解析字符串以比较数字。然而,我被困在第一部分 当我返回数组时,只返回修改后的第一个元素。我如何重写它以便返回数组的所有元素 function largest_phone_number(arr) { for (var i=0; i<=arr.length; i++) { var re = /-/g; arr = arr[i].re
function largest_phone_number(arr) {
for (var i=0; i<=arr.length; i++) {
var re = /-/g;
arr = arr[i].replace(re, "");
return arr;
}
} //largest_phone_number(['123-456-7777', '963-481-7945', '111-222-3333']);
功能最大电话号码(arr){
对于(var i=0;i,只要使用关键字return
,当前上下文将停止运行。因此,函数将在循环的第一次迭代后停止
您的情况非常适合使用Array.map()
函数。我建议您执行以下操作:
function largest_phone_number(arr) {
return arr.map(function(elem){
return elem.replace("-", "");
});
}
这将返回一个不带连字符的新数组。首先,arr[i]=arr[i].replace(re,”);
…并从循环中删除return语句…将其移到循环外不应从for loopUse返回。for loopUse工作得非常好。我修补了map,但无法使其正常工作。我改用了regExp/-/g,它去掉了元素中的所有连字符。谢谢!