2013-10-17 26 views
0

嘿傢伙我需要一些代碼將拆分一個數組,其中包含一個字符串,這是一個項目和數量與分隔符是(:)。 (例如Gas:30) 將元素從transArray加載到項目和金額字段的hmtl texboxes的值中 請不要苛刻地評論這是我的第一種語言的類型語言。 任何幫助表示讚賞!JavaScript使用for循環與數組分割陣列

var load = function() 
{ 

    mySetArray(); //Fills the transArray randomly with 1-4 items 
    var item = ''; 
    var amount = ''; 

    for (i=1; i<=transArray.length; i++) 
    { 
    item = 'item' + i; 
    amount = 'amount' + i; 
    transArray.split(":");  
    } 
} 

    var mySetArray = function() 
    { 

var myRandom = Math.floor((Math.random() * 100)/25) + 1; //a number between 1  and 4 

transArray = new Array(); //Resets the Array to empty 

if (myRandom == 1) 
{ 
    transArray[0] = "Food:200"; 
} 

if (myRandom == 2) 
{ 
    transArray[0] = "Food:200"; 
    transArray[1] = "Toys:700"; 
} 

if (myRandom == 3) 
{ 
    transArray[0] = "Food:200"; 
    transArray[1] = "Toys:700"; 
    transArray[2] = "Mortgage:1800"; 
} 

if (myRandom == 4) 
{ 
    transArray[0] = "Food:200"; 
    transArray[1] = "Toys:700"; 
    transArray[2] = "Mortgage:1800"; 
    transArray[3] = "Cable:130"; 
} 
    } 

     window.onload = function() 
    { 
$("load").onclick = load; 
    } 
+0

您可能需要考慮使用[object literal](https:// developer .mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Object_literals)而不是數組。 – thgaskell

+0

您的代碼看起來有兩個主要問題。您正在「分割完整的transArray」而不是「逐個分割其元素(字符串)」。另外我想你的'mySetArray()沒有返回你的transArray加載函數。我試圖用演示提供完整的答案。 – Sami

回答

0

要分割的陣列,如:

transArray[0] = "Food:200"; 

只需使用分裂:

var newArray = transArray[0].split(':'); 
// newArray[0] = 'Food', newArray[1] = '200' 
0

變化:

for (i=1; i<=transArray.length; i++) { 
    item = 'item' + i; 
    amount = 'amount' + i; 
    transArray.split(":");  
} 

for (i=1; i<=transArray.length; i++) { 
    item = 'item' + i; 
    amount = 'amount' + i; 
    var splitted = transArray[i].split(":"); <-- split each item in transArray 
    console.log(splitted); 
} 
0

這裏transArray是一個數組。您應該使用拆分它的值,即transArray[i].split(":");

所以更新你的代碼是這樣的:

for (i=1; i<=transArray.length; i++) 
    { 
     item = 'item' + i; 
     amount = 'amount' + i; 
     var splittedData = transArray[i].split(":");  
     // It will give Item in 0th index and amount in 1st field. 
    } 
0
var arr = new Array(); 
arr[0] = "Gas:200"; 

var newArr = arr[0].split(':'); 
0

JSFIDDLE DEMO

呼叫負載功能,在任何你想要或者因爲它是(因爲我有完成)

function load() 
{ 

    transArray = mySetArray(); //Fills the transArray randomly with 1-4 items 
    var item = ''; 
    var amount = ''; 

    for (i=0; i<=transArray.length; i++) 
    { 
    ar = transArray[i].split(":"); 
    alert((i+1)+" Item="+ar[0] + " Amount="+ ar[1]); // You ca use it in your own way 
    } 
} 
load(); 

    function mySetArray() 
    { 

var myRandom = Math.floor((Math.random() * 100)/25) + 1; //a number between 1  and 4 

transArray = new Array(); //Resets the Array to empty 

if (myRandom == 1) 
{ 
    transArray.push("Food:200"); 
} 

if (myRandom == 2) 
{ 
    transArray.push("Food:200"); 
    transArray.push("Toys:700"); 
} 

if (myRandom == 3) 
{ 
    transArray.push("Food:200"); 
    transArray.push("Toys:700"); 
    transArray.push("Mortgage:1800"); 
} 

if (myRandom == 4) 
{ 
    transArray.push("Food:200"); 
    transArray.push("Toys:700"); 
    transArray.push("Mortgage:1800"); 
    transArray.push("Cable:130"); 
} 
     return transArray; 
}