2014-03-25 54 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