在我的javascript中,我有一个名为my_array
的数组,包含0121
, 1201
, 0012
, 0202
等值
字符串中的每一个数字都很重要。因此,在上面的例子中,一个字符串中有4个值。例如:0121
保存0、1、2、1.
值也可以更长。例如01221
, 21021
等(这是保存5个值)
我想知道做以下事情最简单、最有效的方法:
将数组my_array
中所有字符串的第一个数字相加。如上面示例中的0+1+0+0
添加第二个数字(例如1+2+0+2
),以此类推。
我可以循环遍历数组并拆分值,然后
for(i=0; i<my_array.length; i++){
var another_array = my_array[i].split();
//Getting too complicated?
}
我怎样才能有效地做这件事?
像这样
var myArray = ["0121", "1201", "0012", "0202"];
var firstValSum = 0;
for(var i = 0; i < myArray.length; i++) {
var firstVal = myArray[i].split("");
firstValSum += parseInt(firstVal[0], 10);
}
console.log(firstValSum); //1
可以包装成一个带参数的函数,使其动态。也就是说,传入数组和你想要加在一起的字符串的哪一部分。
EDIT—这是实现您想要的效果的一种更简洁的方式—该代码按照您指定的方式在数组中输出计算值。
var myArray = ["0121", "1201", "0012", "0202"];
var newArr = [];
for(var i = 0; i < myArray.length; i++) {
var vals = myArray[i].split("");
for(var x = 0; x < vals.length; x++) {
var thisVal = parseInt(vals[x], 10);
( newArr[x] !== undefined ) ? newArr[x] = newArr[x] += thisVal : newArr.push(thisVal);
}
}
console.log(newArr); //[1, 5, 3, 6];
这里的小提琴
var resultArray = new Array(); // This array will contain the sum.
var lengthEachString = my_array[0].length;
for(j=0; j<lengthEachString ; j++){ // if each element contains 4 elements then loop for 4 times.
for(i=0; i<my_array.length; i++){ // loop through each element and add the respective position digit.
var resultArray[j] = parseInt( my_array[i].charAt(j) ); // charAt function is used to get the nth position digit.
}
}