2014-04-12 141 views
0

有人可以幫助我使用此javascript。我有兩個變量,用逗號分隔的單詞。JavaScript將變量組合到數組中

var names = "Verwerkende industrie, Retail, Primaire producent, Out of home, Groothandel, Grondstof, Consument, Bewerkende industrie"; 
var numbers = "9, 3, 4, 2, 7, 9, 3, 2"; 

我想將它們組合成應該結束這樣看

var combined = [ 
       ['Verwerkende industrie', 9], 
       ['Retail', 3], 
       ['Primaire producent', 4], 
       ['Out of home', 2], 
       ['Groothandel', 7], 
       ['Grondstof', 9], 
       ['Consument', 3], 
       ['Bewerkende industrie', 2] 
      ]; 
+2

爲'numbers'該行無效JavaScript語法。它應該是一個數組?或者像'names'這樣的字符串?另外,你確定你不想有一個對象數組而不是數組數組? –

+0

啊,對不起。它也是一個類似於名稱的字符串 – Johansrk

回答

1
var names = "Verwerkende industrie, Retail, Primaire producent, Out of home, Groothandel,  Grondstof, Consument, Bewerkende industrie"; 
var numbers = "9, 3, 4, 2, 7, 9, 3, 2"; 

var namesArray = names.split(","); //split the string at ','. split() returns an array of result 
var numbersArray = numbers.split(","); 

var resultArray = []; //array to hold result 

//since the namesArray and numbersArray are the same length, you can use one for-loop 
for (var i=0, len=namesArray.length; i < len; i++) { 
    resultArray[i] = [namesArray[i], parseInt(numbersArray[i])]; 
} 
+0

完美地工作。謝謝..甚至與行評論 – Johansrk

0
var names = "Verwerkende industrie, Retail, Primaire producent, Out of home, Groothandel, Grondstof, Consument, Bewerkende industrie"; 
var numbers = "9, 3, 4, 2, 7, 9, 3, 2"; 

function zip(arrays) { 
    return arrays[0].map(function(_,i){ 
     return arrays.map(function(array){return array[i]}) 
    }); 
} 

// paramert = array 
zip([ 
names.split(/,\s+/), 
numbers.split(/,\s+/).map(function (i) { return parseInt(i); }) 
]); 
+0

這不會給出所需的數組。對於一個空白不被剝離,其次數字將是字符串(示例輸出狀態他們是數字類型)。 –

+0

現在它[不工作](http://jsfiddle.net/ZBp3F/)。 –

+0

@IngoBürk很抱歉混淆。我很着急 – niklasfi

1

這應該工作的數組。

var names = "Verwerkende industrie, Retail, Primaire producent, Out of home, Groothandel, Grondstof, Consument, Bewerkende industrie"; 
var numbers = "9, 3, 4, 2, 7, 9, 3, 2"; 

names = names.split(','); 
numbers = numbers.split(','); 
var combined = []; 
for(var i = 0; i < names.length; i++){ 
    combined.push([names[i], parseInt(numbers[i])]); 
} 
+0

謝謝也很好。我很快就得到了很多答案 – Johansrk

0

不幸的是JavaScript沒有一個「拉鍊」的功能,但你可以這樣做同樣的事情:

var namesArr = names.split(", "); 
var numbersArr = numbers.split(", ").map(function (s) { return parseInt(s); }); 
var combined = []; 
for (var i = 0; i < namesArr.length; i++) 
{ 
    combined[i] = [namesArr[i], numbersArr[i]]; 
} 
+0

關閉,但其中一些導致NaN – Johansrk

+0

現在應該修復。 –