4 回答
TA贡献1995条经验 获得超2个赞
您超出了阵列范围。另外,当您开始从索引 0 开始查看数组时,您应该将添加的值初始化为 0。注意,我添加了一些 console.logs 来让您了解如何调试此类内容。
function add (string) {
let partsArray = string.split("+");
console.log("parts", partsArray);
let added = 0;
for (let i=0; i<partsArray.length; i++) {
console.log("i",parseInt(partsArray[i]));
added += parseInt(partsArray[i]);
}
return added;
}
如果添加<=后面并使用 console.logs 运行代码,您将在控制台中看到以下内容。请注意,<=您有 4 个索引,而不是预期的 3 个。这是因为大小为 3,但数组是从零开始索引的。当您使用时,<您会得到预期的答案。
TA贡献2012条经验 获得超12个赞
您还可以使用reduce方法:
function add(string) {
return string.split('+').reduce((accumulator, currentValue) => accumulator +
parseInt(currentValue, 10),0)
}
TA贡献2051条经验 获得超10个赞
如果您仍然想从第一个索引开始..您可以像下面这样做
function add (string) {
let partsArray = string.split("+");
let added = parseInt(partsArray[0]);
for (let i=1; i<partsArray.length; i++) {
added += parseInt(partsArray[i]);
}
return added;
}
TA贡献1942条经验 获得超3个赞
function add(given)
{
let data=given.split('+');
let nums=data.map(function(num){
return parseInt(num)
})
let sum=0
for(let i=0;i<nums.length;i++)
{
sum=sum+nums[i];
}
console.log( sum)
}
add('7+12+100')
添加回答
举报