开发者

Splitting a string in javascript and storing in multidimentional array

开发者 https://www.devze.com 2023-02-04 08:58 出处:网络
I have a string 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|\';

I have a string

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|';

I want to split the string first by '|' , which i can do by using

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

i further want to split them by ',' and store in an array

The question is how do i store in a multidimention array so the output looks similar to this

da[0]={'2011/01/03 00:00:00开发者_运维问答',14.00}
da[1]={'2011/01/03 00:00:00',14.50}
.
.
.

Thanks Prady


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

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

Result looks like:

[
  ['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 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},
// ]

This is assuming, based on your pseudo-JS syntax using curly braces, that you really meant an array of objects instead of a multi-dimensional array. If you want a single object hashing 'time-as-string' to values, you might do:

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

This would allow you to find the value for any given day in constant time, without traversing the array of values.

0

精彩评论

暂无评论...
验证码 换一张
取 消