2014-03-25 18 views
2

在我的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? 
} 

我怎样才能有效地做到这一点?有人请指导我。

+0

什么为my_array的类型? – Narendra

+0

这是一个字符串数组。 – LittleLebowski

回答

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 

这可以被包装成需要的参数,使其动态功能。即传入数组和要添加的字符串的哪一部分。

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

小提琴here

+0

看起来不错。我想添加所有的部分。在这个例子中,我会说一个有4个结果的数组,其中包含所有四个和。 – LittleLebowski

+0

@LittleLebowski - 请参阅我编辑的编辑。第二块代码确实是:) –

+0

真棒,看起来不错。让我测试一下我的代码。万分感谢。 :) – LittleLebowski

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

'int lengthEachStrng' < - 这是无效的JavaScript。这应该很简单'var lengthEachStrng = my_array [1] .length;'。 –

+0

谢谢,将int更改为var。 – Narendra