1

インデックスのタイムスタンプを使用して単純な配列を作成し、配列を反復処理せずにタイムスタンプで値にアクセスできるようにしようとしていますが、苦労しています。

行ごとに2つの値を設定できる必要があります。

例えば:

var myarray = [];
var test1 = 'hello'
var test2 = 'world'

myarray[timestamp] = [test1, test2];

したがって、特定のタイムスタンプ(12345678など)に対して、test2の値にアクセスするにはどうすればよいですか?

考えやアドバイスに感謝します。

よろしく、ベン。

4

2 に答える 2

7

このように配列を使用すると、大量のundefined値を含む配列になります。

var myarr = [];
myarr[1000] = 'hello';
console.log(myarr.length); //=> 1001 
console.log(myarr[0]); //=> undefined
console.log(myarr[999]); //=> undefined

したがって、そのためにオブジェクトを使用し、ある種の並べ替えを使用することをお勧めします。例えば

var myobj = {}, timestamp = new Date().getTime();
myobj[timestamp] =   ['hello','world'];
myobj[timestamp+1] = 'how are we today?';

function retrieveSorted(obj){
  var keys = Object.keys(obj).sort(), key, ret = [];
  while(key = keys.shift()){
    ret.push(obj[key]);
  }
  return ret;
}

var sorted = retrieveSorted(myobj); 
   //=> [["hello", "world"], "how are we today?"]
myobj[timestamp][1]; //=> world
于 2012-04-28T11:56:03.550 に答える
2
myarray[timestamp][1]

1は内部配列の2番目のインデックスです。インデックスは0から始まります。

于 2012-04-28T11:56:24.990 に答える