Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只能访问已修改数组的第一个元素_Javascript_Arrays_Regex - Fatal编程技术网

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,它去掉了元素中的所有连字符。谢谢!