Javascript 数组不断删除索引中的第一个数字

Javascript 数组不断删除索引中的第一个数字,javascript,arrays,Javascript,Arrays,对不起,太丑了。我正在尝试编写代码,在这一点上,将电话号码列表作为字符串,找到它们的数字总和,并将其放入一个新数组中。我感觉很好,但是当我运行它时,我得到一个数组,它只包含后面的和,而不是索引中的第一个 var numList = ["555-237-4892", "555-236-44892", "233-482-1049"]; var penList = []; for (var j = 0; j < numList.length; j++) { function sum()

对不起,太丑了。我正在尝试编写代码,在这一点上,将电话号码列表作为字符串,找到它们的数字总和,并将其放入一个新数组中。我感觉很好,但是当我运行它时,我得到一个数组,它只包含后面的和,而不是索引中的第一个

var numList = ["555-237-4892", "555-236-44892", "233-482-1049"];
var penList = [];
for (var j = 0; j < numList.length; j++) {
    function sum() {
        var phonestr = numList[j];
        var phoneArray = phonestr.split("");
        delete phoneArray[3];
        delete phoneArray[7];
        phoneArray.sort();
        phoneArray.pop();
        phoneArray.pop();

        var total = 0;
        var phoneInt;

        var largest = 0;
        for (var i = 0; i < phoneArray.length; i++) {
            phoneInt = parseInt(phoneArray[i]);
            total += phoneInt;

        }
        penList[i] = total;

    };
    sum();
};
console.log(penList);
var numList=[“555-237-4892”、“555-236-44892”、“233-482-1049”];
var-penList=[];
对于(var j=0;j
如果我理解您的意图,我认为您希望更改以下内容:

penList[i] = total;
为此:

penList[j] = total;

这里有一个更简洁的方法:

var numList=[“555-237-4892”、“555-236-44892”、“233-482-1049”];
var result=numList.map(函数(项){
返回项。替换(/\D/g,“”)。拆分(“”)。减少(函数(总计,ch){
返回总计+parseInt(ch,10);
}, 0);
});
//在代码段中显示结果

document.write(JSON.stringify(result))如果我理解您的意图,我认为您希望更改以下内容:

penList[i] = total;
为此:

penList[j] = total;

这里有一个更简洁的方法:

var numList=[“555-237-4892”、“555-236-44892”、“233-482-1049”];
var result=numList.map(函数(项){
返回项。替换(/\D/g,“”)。拆分(“”)。减少(函数(总计,ch){
返回总计+parseInt(ch,10);
}, 0);
});
//在代码段中显示结果

document.write(JSON.stringify(result))将外部for循环中的
penList[i]
更改为
penList[j]


另外,如果不需要,如果要立即调用它,则不需要在for循环中声明
sum()
函数。如果您这样做是为了模块化代码,最好将该函数移出循环以提高可读性。

将外部for循环中的
penList[i]
更改为
penList[j]

另外,如果不需要,如果要立即调用它,则不需要在for循环中声明
sum()
函数。如果您这样做是为了模块化代码,那么最好将该函数移出循环,以提高可读性。

尝试以下方法:

后续评论进行解释

var numList=[“555-237-4892”、“555-236-44892”、“233-482-1049”];
var-penList=[];
对于(var j=0;j
试试这个:

后续评论进行解释

var numList=[“555-237-4892”、“555-236-44892”、“233-482-1049”];
var-penList=[];
对于(var j=0;j
不要为丑陋道歉。只需在发布前修改格式即可。提问者的一点努力在这里有很大的帮助。不要为自己的丑陋道歉。只需在发布前修改格式即可。提问者的一点努力在这里有很大的帮助。