Javascript 如何将数组从[“1”、“2”、“3”、“4”]转换为[1,2,3,4]?

Javascript 如何将数组从[“1”、“2”、“3”、“4”]转换为[1,2,3,4]?,javascript,arrays,Javascript,Arrays,我试图使用下面的代码行块 var myarray = [1,2,3,4]; var new_array = []; myarray.reduce(function(a,b,i) { return new_array[i] = a+b; },0); // Result = [1, 3, 6, 10] console.log("original array"); console.log(new_array); 这个块工作得很好,但是当我替换我自己的数组时,结果是完全错误的 var ar1 = ["

我试图使用下面的代码行块

var myarray = [1,2,3,4];
var new_array = [];
myarray.reduce(function(a,b,i) { return new_array[i] = a+b; },0);
// Result = [1, 3, 6, 10]
console.log("original array");
console.log(new_array);
这个块工作得很好,但是当我替换我自己的数组时,结果是完全错误的

var ar1 = ["1","2","3","4"];
var ar2 = [];
ar1.reduce(function(a,b,i) { return ar2[i] = a+b; },0);
// result = ["01", "012", "0123", "01234"]
console.log("original array");
console.log(ar2);
我得到这个结果[01012012301234]

有人可以帮忙吗,谢谢

在使用+运算符之前,请尝试使用parseInt将数字转换为字符串。字符串+字符串是字符串串联,而数字+数字是代数加法

var ar1 = ["1","2","3","4"];
var ar2 = [];
ar1.reduce(function(a,b,i) { return ar2[i] = parseInt(a) + parseInt(b); },0);
// result = ["01", "012", "0123", "01234"]
console.log("original array");
console.log(ar2);
不要使用reduce。首先使用map.或使用.mapNumber