如何在字符串中拆分和添加单个值?

时间:2014-03-25 13:16:59

标签: javascript jquery arrays string for-loop

在我的javascript中,我有一个名为my_array的数组,其中包含0121120100120202等值。

字符串中的每个数字都很重要。因此,在上面的示例中,一个字符串中有4个值。例如。 0121持有0,1,2,1。

值也可以更长。例如。 0122121021等(这是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?
}

我该如何有效地做到这一点?有人请指导我。

2 个答案:

答案 0 :(得分:1)

像这样的东西

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

这可以包含在一个函数中,该函数接受参数使其动态化。即传入数组以及要添加到一起的字符串部分。

编辑 - 这是实现目标的更简洁方式 - 此代码按照您指定的方式输出数组中的计算值。

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];

小提琴here

答案 1 :(得分:1)

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.
    }
}