在javascript中拆分字符串并存储在多维数组中

时间:2011-01-14 03:27:57

标签: 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

2 个答案:

答案 0 :(得分: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'],
  ''
]

答案 1 :(得分: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语法,你真的是指一个对象数组而不是多维数组。如果您希望单个对象将值“time-as-string”散列为值,则可以执行以下操作:

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,
// }

这将允许您在恒定时间内查找任何给定日期的值,而无需遍历值数组。