2011-01-14 73 views
1

存儲的字符串我有一個字符串劈裂JavaScript和在多維陣列

string s='2011/01/03 00:00:00,14.00|2011/01/03 00:00:00,14.50|2011/01/03 00:00:00",15.00|2011/01/02 00:00:00,12.00|'; 

欲由第一分割字符串「|」 ,這是我可以通過使用

var ds=[]; 
ds=s.split('|'); 

做我還希望通過分裂他們「」並存儲在一個陣列

的問題是如何存放在multidimention陣列,使得所述輸出類似這

da[0]={'2011/01/03 00:00:00',14.00} 
da[1]={'2011/01/03 00:00:00',14.50} 
. 
. 
. 

感謝 Prady

+0

如果您確實想要一個多維數組,請參閱@ patrickdw的語法看起來的答案。花括號用於對象文字(鍵/值對),而不是數組(有序值)。 – Phrogz 2011-01-14 03:56:20

+0

感謝Phrogz和帕特里克..我正在尋找一個multidimentional陣列,,我犯了一個錯誤,而不是] – Prady 2011-01-14 04:08:40

回答

2
var ds = s.split('|'); 

for(var i = 0, len = ds.length; i < len; i++) { 
    if(ds[i]) 
     ds[i] = ds[i].split(','); 
} 

結果如下:

[ 
    ['2011/01/03 00:00:00','14.00'], 
    ['2011/01/03 00:00:00','14.50'], 
    ['2011/01/03 00:00:00','15.00'], 
    ['2011/01/02 00:00:00','12.00'], 
    '' 
] 
+0

+ 1用於緩存數組的長度,但-1沒有大括號的多行語句。 :p – Phrogz 2011-01-14 03:44:01

2
var s='2011/01/03 00:00:00,14.00|2011/01/03 00:00:00,14.50|2011/01/03 00:00:00,15.00|2011/01/02 00:00:00,12.00'; 
var pieces = s.split('|'); 
for (var i=0,len=pieces.length;i<len;++i){ 
    var pair = pieces[i].split(','); 
    pieces[i] = {}; 
    pieces[i][pair[0]] = pair[1]*1; //*1 to convert from string to number 
} 

console.log(pieces); 
// [ 
// {'2011/01/03 00:00:00':14.00}, 
// {'2011/01/03 00:00:00':14.50}, 
// {'2011/01/03 00:00:00':15.00}, 
// {'2011/01/02 00:00:00':12.00}, 
// ] 

這是假設,根據你的僞JS語法使用大括號,你真的意味着對象而不是一個多維數組的數組。如果你想有一個單一的對象散列「時間作爲字符串」到值,你可以做:

var pieces = s.split('|'); 
var values = {}; 
for (var i=0,len=pieces.length;i<len;++i){ 
    var pair = pieces[i].split(','); 
    values[pair[0]] = pair[1]*1; 
} 
console.log(values); 
// { 
// '2011/01/03 00:00:00': 14.00, 
// '2011/01/03 00:00:00': 14.50, 
// '2011/01/03 00:00:00': 15.00, 
// '2011/01/02 00:00:00': 12.00, 
// } 

這將讓你找到了在一定時間任何一天的價值,而無需遍歷值的數組。